11 #pragma warning(disable : 4100)
15 #define UNDEFINED_STR "---"
18 #include <vlutil/vlString.h>
22 #include <mtl/mtlEnvironment.h>
36 #define theOMTDatatypeManager DtDatatypeManager::defaultInstance()
68 virtual void initOMTData(
DtOMTTree* omtTree);
73 virtual void setImplicitPadding(
bool enableImplicitPadding);
74 virtual bool isImplicitPaddingEnabled()
const;
79 virtual void fillDefaultDatatypeRepList();
90 virtual DtDatatypeRep* getSimpleDatatypeRep(
const DtString& datatypeName);
93 virtual std::map<DtString,DtDatatypeRep*>::iterator getNameRepMapList();
94 virtual std::map<DtString,DtDatatypeRep*>::iterator getNameRepMapListEnd();
102 virtual void addDelimiterMap(
const DtString& datatype,
const DtString& delimiter);
103 virtual void removeDelimiterMap(
const DtString& datatype);
106 virtual void setDefaultDelimiter(
const DtString& str);
110 virtual void setArrayWrapper(
const DtString& start,
const DtString& end);
113 virtual DtString getDelimiterMap(
const DtString& datatypeName,
bool* isAvailable = 0);
114 virtual std::map<DtString,DtString>::iterator getDelimiterList();
115 virtual std::map<DtString,DtString>::iterator getDelimiterListEnd();
122 virtual void addArrayBracketMap(
const DtString& datatype,
bool valueIsBracketed);
123 virtual void removeArrayBracketMap(
const DtString& datatype);
126 virtual void setDefaultArrayBracket(
bool valueIsBracketed);
129 virtual bool getArrayBracketMap(
const DtString& datatypeName,
bool* isAvailable = 0);
130 virtual std::map<DtString,bool>::iterator getArrayBracketList();
131 virtual std::map<DtString,bool>::iterator getArrayBracketListEnd();
137 virtual void readFile(DtString str);
140 virtual void writeFile(DtString str);
143 virtual void addRepMapping(
const DtString& datatype,
const DtString& rep);
144 virtual void removeRepMapping(
const DtString& datatype);
147 virtual void addAttributeMapping(
const DtString& datatype,
const DtString& rep);
148 virtual void removeAttributeMapping(
const DtString& datatype);
149 virtual const DtString& attributeMapping(
const DtString& attributeName)
const;
153 virtual bool modifyRepMapping(
const DtString& datatype,
const DtString& rep);
156 virtual std::map<DtString,DtString>::iterator getRepMapList();
157 virtual std::map<DtString,DtString>::iterator getRepMapListEnd();
171 const void* value,
int size,
int& returnSize);
172 virtual DtString getStringRep(
const DtString& datatypeName,
173 const void* value,
int size,
int& returnSize);
175 const void* value,
int size,
int& returnSize);
189 const void* value,
int size,
int& returnSize,
unsigned int currentOffset = 0,
191 virtual DtStringTree* createStringTreeRep(
const DtString& datatypeName,
192 const void* value,
int size,
int& returnSize,
const DtOMTNode* omtNode = 0,
193 unsigned int currentOffset = 0,
DtStringTree* strParentTree = 0,
196 const void* value,
int size,
int& returnSize,
197 unsigned int currentOffset = 0,
DtStringTree* strParentTree = 0,
204 virtual void getValueFromStringRep(
const DtString& datatypeName,
const DtString& stringRep,
205 std::vector<char>& result);
210 virtual DtString convertStringTreeToString (
DtStringTree*,
const DtString& delimiter);
216 virtual DtDatatypeEnum getDatatypeEnum(
const DtString& datatypeName);
220 virtual bool isDirty();
223 virtual void setIsDirty(
bool makeDirty);
234 virtual DtDatatypeRep* repNameToDatatypeRep(DtString
const& name);
238 virtual bool getRepresentationName(DtString
const& datatypeName, DtString& repName);
242 virtual void checkOrphanMappings();
248 virtual void getDefaultRep(
const void* value,
int size,
int& returnSize, DtString& returnString);
249 virtual void getDatatypeRep(
const DtString& datatypeName,
const void* value,
int size,
int& returnSize, DtString& returnString);
250 virtual void getAttributeRep(
const DtString& attributeName,
const void* value,
int size,
int& returnSize, DtString& returnString);
251 virtual void getEnumRep(
const DtString& datatypeName,
const void* value,
int size,
int& returnSize, DtString& returnString);
252 virtual void getVariantRep(
const DtString& datatypeName,
const void* value,
int size,
int& returnSize, DtString& returnString);
253 virtual void getArrayRepBySize(
const DtString& datatypeName,
const void* value,
int size,
int& returnSize, DtString& returnString);
254 virtual void getArrayRepByCount(
DtArrayDatatypeNode* arrayNode,
const void* value,
int size,
int& returnSize, DtString& returnString);
255 virtual void getArrayRep(
const DtString& datatypeName,
const void* value,
int size,
int& returnSize, DtString& returnString);
258 virtual void getValueFromDatatypeRep(
const DtString& datatypeName,
const DtString& stringRep, std::vector<char>& result);
259 virtual void getValueFromArrayRep(
const DtString& datatypeName,
const DtString& stringRep, std::vector<char>& result);
260 virtual void getValueFromComplexRep(
const DtString& datatypeName,
const DtString& stringRep, std::vector<char>& result);
261 virtual void getValueFromFixedRep(
const DtString& datatypeName,
const DtString& stringRep, std::vector<char>& result);
262 virtual void getValueFromEnumRep(
const DtString& datatypeName,
const DtString& stringRep, std::vector<char>& result);
265 virtual void createComplexTreeRep(
266 const DtString& datatypeName,
const void* value,
int size,
268 unsigned int currentOffset = 0,
270 virtual void createArrayTreeRep(
271 const DtString& datatypeName,
const void* value,
int size,
273 unsigned int currentOffset = 0,
275 virtual void createDefinedTreeRep(
276 const DtString& datatypeName,
const void* value,
int size,
278 unsigned int currentOffset = 0,
280 virtual void createVariantTreeRep(
281 const DtString& datatypeName,
const void* value,
int size,
283 unsigned int currentOffset = 0,
285 virtual void createFixedTreeRep(
286 const DtString& datatypeName,
const void* value,
int size,
288 unsigned int currentOffset = 0,
292 virtual void processMappings(DtlObjPtr& ptr);
298 const void* value,
int valueSize,
int alreadyRead,
302 const void* value,
int valueSize,
306 virtual int byteAlignment(
const DtString& datatype);
307 virtual int byteAlignmentFromRep(
const DtString& datatype);
308 virtual int byteAlignmentFixed(
const DtString& datatype);
309 virtual int byteAlignmentArray(
const DtString& datatype);
310 virtual int byteAlignmentVariant(
const DtString& datatype);
311 virtual int byteAlignmentComplex(
const DtString& datatype);
312 virtual int implicitPadding(
unsigned int currentOffset,
const DtString& datatypeName);
DatatypeNameRepNameMap myAttributeToRepMap
Definition: datatypeManager.h:321
An INTERNALLY defined set of different data types.
Definition: datatypeManager.h:53
std::map< DtString, bool > myArrayBracketMap
Definition: datatypeManager.h:334
An Enumeration that maps an integer to a string value.
Definition: datatypeManager.h:48
std::map< DtString, DtDatatypeRep * > RepNamePtrMap
Definition: datatypeManager.h:325
A datatype that could be of a different type at runtime.
Definition: datatypeManager.h:51
A collection of different data types in one.
Definition: datatypeManager.h:49
DtString myStartWrapper
Definition: datatypeManager.h:330
This class handles the conversion between a byte stream and an English readable view of the data in a...
Definition: datatypeManager.h:41
#define DT_DLL_OMTREADER
Definition: omtReader.h:23
A Datatype Representation is a class that can take a group of bytes and display them in a certain typ...
Definition: datatypeRep.h:20
std::set< DtString > myRemappedDatatypes
Definition: datatypeManager.h:322
A collection of the same datatype in one.
Definition: datatypeManager.h:50
std::map< DtString, DtString > DatatypeNameRepNameMap
Definition: datatypeManager.h:319
DtString myEndWrapper
Definition: datatypeManager.h:331
defines an object class inside our Fed Tree
Definition: interactionClassFedNode.h:25
represents a node in an OMT tree.
Definition: omtNode.h:16
DtOMTTree * myOMTTree
Definition: datatypeManager.h:316
DtString myDefaultArrayBracket
Definition: datatypeManager.h:333
bool myUseImplicitPadding
Definition: datatypeManager.h:336
std::map< DtString, DtDatatypeEnum > myDatatypeTypeMap
Definition: datatypeManager.h:317
bool myDirty
Definition: datatypeManager.h:338
Definition: complexComponentNode.h:17
static DtDatatypeManager * theDatatypeManager
Protected member data.
Definition: datatypeManager.h:342
defines an object class inside our Fed Tree
Definition: objectClassFedNode.h:30
A fixed set of a collection of different data types.
Definition: datatypeManager.h:52
virtual DtOMTTree * omtTree()
Definition: datatypeManager.h:70
Basically a struct with a destructor, a string tree is a collection of indexed strings used to hold m...
Definition: stringTree.h:16
represents a node in an OMT tree containing a datatype description.
Definition: omtDatatypeNode.h:14
Represents an attribute inside a object class.
Definition: datatypeFedNode.h:21
DtDatatypeEnum
Definition: datatypeManager.h:45
Definition: arrayDatatypeNode.h:15
DtString myDefaultDelimiter
Definition: datatypeManager.h:328
Complex datatypes are a OMT 1.3 construct that merges arrays, variants, and fixed into one monstrous ...
Definition: complexDatatypeNode.h:23
A tree using the an OMT File information.
Definition: omtTree.h:58
std::set< DtString > myUnknownDatatypes
Definition: datatypeManager.h:339
DatatypeNameRepNameMap myDatatypeToRepMap
Definition: datatypeManager.h:320
RepNamePtrMap myNameToRepMap
Definition: datatypeManager.h:326
std::map< DtString, DtString > myDelimiterMap
Definition: datatypeManager.h:329
A basic datatype such as int or bool.
Definition: datatypeManager.h:47