#include <mdtype.h>
Inheritance diagram for MDType:

Public Types | |
| typedef std::pair< std::string, MDValuePtr > | NamedValue |
| Name and value pair for enums. | |
| typedef std::list< NamedValue > | NamedValueList |
| List of name and value pairs for enums. | |
Public Member Functions | |
| MDTypePtr | EffectiveType (void) |
| Report the effective type of this type. | |
| MDTypeClass | EffectiveClass (void) const |
| Report the effective class of this type. | |
| MDTypePtr | EffectiveBase (void) const |
| Report the effective base type of this type. | |
| TypeRef | EffectiveRefType (void) const |
| Report the effective reference type of this type. | |
| std::string | EffectiveRefTarget (void) const |
| Report the effective reference target of this type. | |
| UInt32 | EffectiveSize (void) const |
| Report the effective size of this type. | |
| bool | HandlesSubdata (void) const |
| Does this value's trait take control of all sub-data and build values in the our own DataChunk? | |
| void | SetEndian (bool Val) |
| Endian access function (set). | |
| bool | GetEndian (void) const |
| Endian access function (get). | |
| void | SetArrayClass (MDArrayClass Val) |
| ArrayClass access function (set). | |
| MDArrayClass | GetArrayClass (void) |
| ArrayClass access function (get). | |
| const std::string & | Name (void) const |
| Get the name of this type. | |
| const ULPtr & | GetTypeUL (void) const |
| Read-only access to the type UL. | |
| NamedValueList & | GetEnumValues (void) |
| (not Read-only) access to the enumerated value list | |
| void | SetRefType (TypeRef Val) |
| Set the reference type. | |
| TypeRef | GetRefType (void) const |
| Get the reference type. | |
| void | SetRefTarget (std::string Val) |
| Set the reference target. | |
| std::string | GetRefTarget (void) const |
| Get the reference target. | |
| bool | AddEnumValue (std::string Name, MDValuePtr &Value) |
| Add a new value to an enumerated value type. | |
| bool | AddEnumValue (std::string Name, std::string Value) |
| Add a new value to an enumerated value type. | |
| bool | AddEnumValue (std::string Name, ULPtr &Value) |
| Add a new UL value to an enumerated value type. | |
| void | SetTraits (MDTraitsPtr Tr) |
| Set the traits for this type. | |
| MDTraitsPtr | GetTraits (void) const |
| Access the traits for this type. | |
Static Public Member Functions | |
| static MDTypePtr | AddBasic (std::string TypeName, ULPtr &UL, int TypeSize) |
| Add a new basic type. | |
| static MDTypePtr | AddInterpretation (std::string TypeName, MDTypePtr BaseType, ULPtr &UL, int Size=0) |
| Add a new interpretation type. | |
| static MDTypePtr | AddArray (std::string TypeName, MDTypePtr BaseType, ULPtr &UL, int ArraySize=0) |
| Add a new array type. | |
| static MDTypePtr | AddCompound (std::string TypeName, ULPtr &UL) |
| Add a new compound type. | |
| static MDTypePtr | AddEnum (std::string TypeName, MDTypePtr BaseType, ULPtr &UL) |
| Add a new enumerated value type. | |
| static MDTypePtr | Find (std::string TypeName, bool SearchAll=false) |
| Find a type in the default symbol space, optionally searching all others. | |
| static MDTypePtr | Find (std::string TypeName, SymbolSpacePtr &SymSpace, bool SearchAll=false) |
| Find a type in a specified symbol space, optionally searching all others. | |
| static MDTypePtr | Find (const UL &BaseUL) |
| Find a type by UL. | |
| static MDTypePtr | Find (ULPtr &BaseUL) |
| Find a type by ULPtr. | |
| static bool | AddTraitsMapping (std::string TypeName, std::string TraitsName) |
| Add a mapping to be applied to all types of a given type name. | |
| static bool | UpdateTraitsMapping (std::string TypeName, std::string TraitsName) |
| Update an existing mapping and apply to any existing type of the given name. | |
| static bool | AddTraitsMapping (const UL &TypeUL, std::string TraitsName) |
| Add a mapping to be applied to all types of a given type UL. | |
| static bool | UpdateTraitsMapping (const UL &TypeUL, std::string TraitsName) |
| Update an existing mapping and apply to any existing type of the given UL. | |
| static MDTraitsPtr | LookupTraitsMapping (std::string TypeName, std::string DefaultTraitsName="") |
| Lookup the traits for a specified type name. | |
| static MDTraitsPtr | LookupTraitsMapping (const UL &TypeUL, const UL &DefaultTraitsUL) |
| Lookup the traits for a specified type UL. | |
| static MDTraitsPtr | LookupTraitsMapping (std::string TypeName, const UL &DefaultTraitsUL) |
| Lookup the traits for a specified type name. | |
| static MDTraitsPtr | LookupTraitsMapping (const UL &TypeUL, std::string DefaultTraitsName="") |
| Lookup the traits for a specified type UL. | |
Public Attributes | |
| MDTypeParent | Base |
| Base class if this is a derived class, else NULL. | |
| StringList | ChildOrder |
| Child names in order for compound types. | |
| int | Size |
| The size of the item in multiples of base class items, or 0 if it is variable. | |
Protected Types | |
| typedef std::map< std::string, MDTraitsPtr > | TraitsMapType |
| Type to map type names to their handling traits. | |
| typedef std::map< UL, MDTraitsPtr > | TraitsULMapType |
| Type to map type ULs to their handling traits. | |
Protected Member Functions | |
| MDType (std::string TypeName, MDTypeClass TypeClass, ULPtr &UL, MDTraitsPtr TypeTraits) | |
| Construct a basic MDType. | |
| MDType () | |
| Prevent auto construction by NOT having an implementation to this constructor. | |
| MDType (const MDType &rhs) | |
| Prevent copy construction by NOT having an implementation to this copy constructor. | |
| void | AddSub (std::string SubName, MDTypePtr SubType) |
| Add a sub to a compound type. | |
Static Protected Member Functions | |
| static void | AddType (MDTypePtr &Type, ULPtr &TypeUL) |
| Add a given type to the lookups. | |
Protected Attributes | |
| std::string | TypeName |
| Name of this MDType. | |
| MDTypeClass | Class |
| Class of this MDType. | |
| MDArrayClass | ArrayClass |
| Sub-class of array. | |
| MDTraitsPtr | Traits |
| Traits for this MDType. | |
| ULPtr | TypeUL |
| The UL for this type. | |
| bool | Endian |
| Flag set to 'true' if this basic type should ever be byte-swapped. | |
| TypeRef | RefType |
| Reference type of this type (if a reference source or target), if TypeRefUndefined then inherit. | |
| std::string | RefTarget |
| Reference target of this type (if a reference source), if "" then inherit. | |
| NamedValueList | EnumValues |
| List of enumerated values, if this is an enum, each with its value name. | |
Static Protected Attributes | |
| static MDTypeList | Types |
| All types managed by this object. | |
| static std::map< UL, MDTypePtr > | ULLookup |
| Map for UL lookups. | |
| static std::map< UL, MDTypePtr > | ULLookupVer1 |
| Map for UL lookups - ignoring the version number (all entries use version = 1). | |
| static MDTypeMap | NameLookup |
| Map for reverse lookups based on type name. | |
| static TraitsMapType | TraitsMap |
| Map of type names to thair handling traits. | |
| static TraitsULMapType | TraitsULMap |
| Map of type ULs to thair handling traits. | |
Friends | |
| class | MDValue |
| typedef std::pair<std::string, MDValuePtr> NamedValue |
Name and value pair for enums.
| typedef std::list<NamedValue> NamedValueList |
List of name and value pairs for enums.
typedef std::map<std::string, MDTraitsPtr> TraitsMapType [protected] |
Type to map type names to their handling traits.
typedef std::map<UL, MDTraitsPtr> TraitsULMapType [protected] |
Type to map type ULs to their handling traits.
| MDType | ( | std::string | TypeName, | |
| MDTypeClass | TypeClass, | |||
| ULPtr & | UL, | |||
| MDTraitsPtr | TypeTraits | |||
| ) | [inline, protected] |
Construct a basic MDType.
This constructor is protected so the ONLY way to create new MDTypes from outside this class is via AddBasic() etc.
| MDType | ( | ) | [protected] |
Prevent auto construction by NOT having an implementation to this constructor.
Prevent copy construction by NOT having an implementation to this copy constructor.
| void AddSub | ( | std::string | SubName, | |
| MDTypePtr | SubType | |||
| ) | [protected] |
Add a sub to a compound type.
| MDTypePtr EffectiveType | ( | void | ) |
Report the effective type of this type.
| MDTypeClass EffectiveClass | ( | void | ) | const |
Report the effective class of this type.
| MDTypePtr EffectiveBase | ( | void | ) | const |
Report the effective base type of this type.
| TypeRef EffectiveRefType | ( | void | ) | const |
Report the effective reference type of this type.
| std::string EffectiveRefTarget | ( | void | ) | const |
Report the effective reference target of this type.
| UInt32 EffectiveSize | ( | void | ) | const |
Report the effective size of this type.
| bool HandlesSubdata | ( | void | ) | const [inline] |
Does this value's trait take control of all sub-data and build values in the our own DataChunk?
Normally any contained sub-types (such as array items or compound members) hold their own data
| void SetEndian | ( | bool | Val | ) | [inline] |
Endian access function (set).
| bool GetEndian | ( | void | ) | const [inline] |
Endian access function (get).
| void SetArrayClass | ( | MDArrayClass | Val | ) | [inline] |
ArrayClass access function (set).
| MDArrayClass GetArrayClass | ( | void | ) | [inline] |
ArrayClass access function (get).
| const std::string& Name | ( | void | ) | const [inline] |
Get the name of this type.
| NamedValueList& GetEnumValues | ( | void | ) | [inline] |
(not Read-only) access to the enumerated value list
| void SetRefType | ( | TypeRef | Val | ) | [inline] |
Set the reference type.
| TypeRef GetRefType | ( | void | ) | const [inline] |
Get the reference type.
| void SetRefTarget | ( | std::string | Val | ) | [inline] |
Set the reference target.
| std::string GetRefTarget | ( | void | ) | const [inline] |
Get the reference target.
Add a new basic type.
DRAGONS: Currently doesn't check for duplicates
| MDTypePtr AddInterpretation | ( | std::string | TypeName, | |
| MDTypePtr | BaseType, | |||
| ULPtr & | UL, | |||
| int | Size = 0 | |||
| ) | [static] |
Add a new interpretation type.
DRAGONS: Currently doesn't check for duplicates
Add a new array type.
DRAGONS: Currently doesn't check for duplicates
Add a new compound type.
DRAGONS: Currently doesn't check for duplicates
Add a new enumerated value type.
DRAGONS: Currently doesn't check for duplicates
| bool AddEnumValue | ( | std::string | Name, | |
| MDValuePtr & | Value | |||
| ) |
Add a new value to an enumerated value type.
DRAGONS: This actual value object will be added to the enumeration class - don't change the value after adding it!
| bool AddEnumValue | ( | std::string | Name, | |
| std::string | Value | |||
| ) |
Add a new value to an enumerated value type.
DRAGONS: This actual value object will be added to the enumeration class - don't change the value after adding it!
| bool AddEnumValue | ( | std::string | Name, | |
| ULPtr & | Value | |||
| ) |
Add a new UL value to an enumerated value type.
DRAGONS: This actual value object will be added to the enumeration class - don't change the value after adding it!
| static MDTypePtr Find | ( | std::string | TypeName, | |
| bool | SearchAll = false | |||
| ) | [inline, static] |
Find a type in the default symbol space, optionally searching all others.
| MDTypePtr Find | ( | std::string | TypeName, | |
| SymbolSpacePtr & | SymSpace, | |||
| bool | SearchAll = false | |||
| ) | [static] |
Find a type in a specified symbol space, optionally searching all others.
NULL if there is no type of that name
| void SetTraits | ( | MDTraitsPtr | Tr | ) | [inline] |
Set the traits for this type.
| MDTraitsPtr GetTraits | ( | void | ) | const [inline] |
Access the traits for this type.
Add a given type to the lookups.
| bool AddTraitsMapping | ( | std::string | TypeName, | |
| std::string | TraitsName | |||
| ) | [static] |
Add a mapping to be applied to all types of a given type name.
| static bool UpdateTraitsMapping | ( | std::string | TypeName, | |
| std::string | TraitsName | |||
| ) | [inline, static] |
Update an existing mapping and apply to any existing type of the given name.
| bool AddTraitsMapping | ( | const UL & | TypeUL, | |
| std::string | TraitsName | |||
| ) | [static] |
| static bool UpdateTraitsMapping | ( | const UL & | TypeUL, | |
| std::string | TraitsName | |||
| ) | [inline, static] |
Update an existing mapping and apply to any existing type of the given UL.
| MDTraitsPtr LookupTraitsMapping | ( | std::string | TypeName, | |
| std::string | DefaultTraitsName = "" | |||
| ) | [static] |
Lookup the traits for a specified type name.
If no traits have been defined for the specified type the traits with the name given in DefaultTraitsName is used (if specified)
| MDTraitsPtr LookupTraitsMapping | ( | const UL & | TypeUL, | |
| const UL & | DefaultTraitsUL | |||
| ) | [static] |
| MDTraitsPtr LookupTraitsMapping | ( | std::string | TypeName, | |
| const UL & | DefaultTraitsUL | |||
| ) | [static] |
Lookup the traits for a specified type name.
If no traits have been defined for the specified type the traits with the UL given in DefaultTraitsName is used
| MDTraitsPtr LookupTraitsMapping | ( | const UL & | TypeUL, | |
| std::string | DefaultTraitsName = "" | |||
| ) | [static] |
Lookup the traits for a specified type UL.
If no traits have been defined for the specified type the traits with the name given in DefaultTraitsName is used (if specified)
friend class MDValue [friend] |
MDTypeClass Class [protected] |
Class of this MDType.
MDArrayClass ArrayClass [protected] |
Sub-class of array.
MDTraitsPtr Traits [protected] |
Traits for this MDType.
bool Endian [protected] |
Flag set to 'true' if this basic type should ever be byte-swapped.
Reference type of this type (if a reference source or target), if TypeRefUndefined then inherit.
std::string RefTarget [protected] |
Reference target of this type (if a reference source), if "" then inherit.
NamedValueList EnumValues [protected] |
List of enumerated values, if this is an enum, each with its value name.
Base class if this is a derived class, else NULL.
Child names in order for compound types.
| int Size |
The size of the item in multiples of base class items, or 0 if it is variable.
MDTypeList Types [static, protected] |
All types managed by this object.
std::map< UL, MDTypePtr > ULLookupVer1 [static, protected] |
Map for UL lookups - ignoring the version number (all entries use version = 1).
MDTypeMap NameLookup [static, protected] |
Map for reverse lookups based on type name.
MDType::TraitsMapType TraitsMap [static, protected] |
Map of type names to thair handling traits.
MDType::TraitsULMapType TraitsULMap [static, protected] |
Map of type ULs to thair handling traits.
1.5.1-p1