VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
propertyUtils.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
13 
14 #pragma once
15 
16 #include <boost/optional.hpp>
17 #include <readerWriter/rwTypes.h>
23 
27 inline const DtReaderWriter* findPropertyRw(const DtReaderWriter& properties, const DtString& propertyName);
28 inline DtReaderWriter* findPropertyRw(DtReaderWriter& properties, const DtString& propertyName);
30 
33 inline const DtReaderWriter* findVariableBindingValueRw(const DtReaderWriter& properties, const DtString& propertyName);
34 inline DtReaderWriter* findVariableBindingValueRw(DtReaderWriter& properties, const DtString& propertyName);
36 
41 template <typename RwType>
43  DtRwVariableBindings &variableBindings,
44  DtRwVariableBindings &defaultBindings,
45  const DtString& variableName);
46 
51 template <typename SpecificRwType>
52 const SpecificRwType* findProperty(const DtReaderWriter& properties, const DtString& propertyName);
53 template <typename SpecificRwType>
54 SpecificRwType* findProperty(DtReaderWriter& properties, const DtString& propertyName);
56 
59 template <typename SpecificRwType>
60 const SpecificRwType* findTypedProperty(const DtReaderWriter& properties, const DtString& propertyName);
61 template <typename SpecificRwType>
62 SpecificRwType* findTypedProperty(DtReaderWriter& properties, const DtString& propertyName);
64 
70 template <typename SpecificRwType>
71 SpecificRwType* addProperty(DtReaderWriter& properties, const DtString& propertyName);
72 
75 inline void addProperty(DtReaderWriter& properties, DtRwProperties* property);
76 
78 
88 template <typename T>
89 boost::optional<T> getPropertyValue(const DtReaderWriter* prop);
90 
94 template <typename T>
95 boost::optional<T> findPropertyValue(const DtReaderWriter& properties, const DtString& propertyName);
96 
101 template <typename T>
102 void setPropertyValue(DtReaderWriter* prop, T val);
103 
109 template <typename T>
110 bool findAndSetPropertyValue(DtReaderWriter& properties, const DtString& propertyName, T val);
111 
114 template <typename T>
115 void setListProperty(DtReaderWriter* prop, const std::list<T>& l);
116 template <typename T>
117 void setListProperty(DtReaderWriter* prop, const std::vector<T>& l);
119 
127 template <typename T>
128 bool findAndSetListProperty(DtReaderWriter& properties, const DtString& propertyName, const std::list<T>& l);
129 template <typename T>
130 bool findAndSetListProperty(DtReaderWriter& properties, const DtString& propertyName, const std::vector<T>& l);
132 
134 template <typename K, typename T>
135 void setMapProperty(DtReaderWriter* prop, const std::map<K, T>& l);
136 
144 template <typename K, typename T>
145 bool findAndSetMapProperty(DtReaderWriter& properties, const DtString& propertyName, const std::map<K, T>& m);
146 
148 template <typename T>
149 boost::optional<T> findVariableBindingValue(const DtReaderWriter& properties, const DtString& propertyName);
150 
152 template <typename T>
153 boost::optional<T> findVariableBindingValue(const DtReaderWriter& properties, const DtReaderWriter& defaultProperties,
154  const DtString& propertyName);
155 
159 inline const DtReaderWriter* findMapItemRw(const DtRwPropertiesMap& propertiesMap, const DtString& itemName);
160 inline DtReaderWriter* findMapItemRw(DtRwPropertiesMap& propertiesMap, const DtString& itemName);
162 
167 template <typename SpecificRwType>
168 const SpecificRwType* findMapItem(const DtRwPropertiesMap& propertiesMap, const DtString& itemName);
169 template <typename SpecificRwType>
170 SpecificRwType* findMapItem(DtRwPropertiesMap& propertiesMap, const DtString& itemName);
172 
173 
174 
175 #include "propertyUtils.inl"
176 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)