deftypes.h File Reference

Definition of classes that load type and class dictionaries. More...

#include <string>
#include <list>

Go to the source code of this file.

Namespaces

namespace  mxflib

Classes

struct  ConstTypeRecord
 Single entry for a type to be defined - can be stored as a compile-time built structure. More...
class  TypeRecord
 Single entry for a type to be defined - built at run-time and can be stacked if required to allow out-of-order definitions. More...
struct  ConstClassRecord
 Single entry for a class to be defined - can be stored as a compile-time built structure. More...
class  ClassRecord
 Single entry for a class to be defined - built at run-time and can be stacked if required to allow out-of-order definitions. More...
struct  ConstDictionaryRecord
 Single entry for a dictionary to be defined - can be stored as a compile-time built structure. More...
class  Dictionary
 Run-time dictionary definition - built from other run-time record definitions. More...
class  Label
 A UL or end-swapped UUID label. More...

Defines

#define MXFLIB_TYPE_START(Name)   const ConstTypeRecord Name[] = {
 MXFLIB_TYPE_START - Use to start a type definition block.
#define MXFLIB_TYPE_START_SYM(Name, Sym)   const ConstTypeRecord Name[] = { { TypeSymbolSpace, "", "", "", "", "", 0, false, false, TypeRefUndefined, NULL, Sym },
 MXFLIB_TYPE_START_SYM - Use to start a type definition block and define a default symbol space.
#define MXFLIB_TYPE_BASIC(Name, Detail, UL, Size, Endian)   { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_TYPE_BASIC - Use to define a "Basic" type.
#define MXFLIB_TYPE_BASIC_SYM(Name, Detail, UL, Size, Endian, Sym)   { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, TypeRefUndefined, NULL, Sym },
 MXFLIB_TYPE_BASIC_SYM - Use to define a "Basic" type and override the default symbol space.
#define MXFLIB_TYPE_BASIC_REF(Name, Detail, UL, Size, Endian, RefType, RefTarget)   { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, RefType, RefTarget, NULL },
 MXFLIB_TYPE_BASIC_REF - Use to define a "Basic" type that is a reference source or target.
#define MXFLIB_TYPE_BASIC_REF_SYM(Name, Detail, UL, Size, Endian, RefType, RefTarget, Sym)   { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, RefType, RefTarget, Sym },
 MXFLIB_TYPE_BASIC_REF_SYM - Use to define a "Basic" type that is a reference source or target and override the default symbol space.
#define MXFLIB_TYPE_INTERPRETATION(Name, Detail, Base, UL, Size)   { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_TYPE_INTERPRETATION - Use to define an "Interpretation" type.
#define MXFLIB_TYPE_INTERPRETATION_SYM(Name, Detail, Base, UL, Size, Sym)   { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, TypeRefUndefined, NULL, Sym },
 MXFLIB_TYPE_INTERPRETATION_SYM - Use to define an "Interpretation" type and override the default symbol space.
#define MXFLIB_TYPE_INTERPRETATION_REF(Name, Detail, Base, UL, Size, RefType, RefTarget)   { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, RefType, RefTarget, NULL },
 MXFLIB_TYPE_INTERPRETATION_REF - Use to define an "Interpretation" type that is a reference source or target.
#define MXFLIB_TYPE_INTERPRETATION_REF_SYM(Name, Detail, Base, UL, Size, RefType, RefTarget, Sym)   { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, RefType, RefTarget, Sym },
 MXFLIB_TYPE_INTERPRETATION_REF_SYM - Use to define an "Interpretation" type that is a reference source or target and override the default symbol space.
#define MXFLIB_TYPE_MULTIPLE(Name, Detail, Base, UL, IsBatch, Size)   { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, TypeRefUndefined, NULL, NULL },
 MXFLIB_TYPE_MULTIPLE - Use to define a "Multiple" type.
#define MXFLIB_TYPE_MULTIPLE_SYM(Name, Detail, Base, UL, IsBatch, Size, Sym)   { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, TypeRefUndefined, NULL, Sym },
 MXFLIB_TYPE_MULTIPLE_SYM - Use to define a "Multiple" type and override the default symbol space.
#define MXFLIB_TYPE_MULTIPLE_REF(Name, Detail, Base, UL, IsBatch, Size, RefType, RefTarget)   { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, RefType, RefTarget, NULL },
 MXFLIB_TYPE_MULTIPLE_REF - Use to define a "Multiple" type that is a reference source or target.
#define MXFLIB_TYPE_MULTIPLE_REF_SYM(Name, Detail, Base, UL, IsBatch, Size, RefType, RefTarget, Sym)   { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, RefType, RefTarget, Sym },
 MXFLIB_TYPE_MULTIPLE_REF_SYM - Use to define a "Multiple" type that is a reference source or target and override the default symbol space.
#define MXFLIB_TYPE_COMPOUND(Name, Detail, UL)   { TypeCompound, Name, Detail, "", UL, "", 0, false, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_TYPE_COMPOUND - Use to start the definition of a "Compound" type.
#define MXFLIB_TYPE_COMPOUND_SYM(Name, Detail, UL, Sym)   { TypeCompound, Name, Detail, "", UL, "", 0, false, false, TypeRefUndefined, NULL, Sym },
 MXFLIB_TYPE_COMPOUND_SYM - Use to start the definition of a "Compound" type and override the default symbol space.
#define MXFLIB_TYPE_COMPOUND_ITEM(Name, Detail, Type, UL, Size)   { TypeSub, Name, Detail, Type, UL, "", Size, false, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_TYPE_COMPOUND_ITEM - Use to define an item within the current "Compound" type.
#define MXFLIB_TYPE_COMPOUND_END
 MXFLIB_TYPE_COMPOUND_END - Use to end definition of a "Compound" type.
#define MXFLIB_TYPE_ENUM(Name, Detail, Type, UL)   { TypeEnum, Name, Detail, Type, UL, "", 0, false, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_TYPE_ENUM - Use to start the definition of an "Enumeration" type.
#define MXFLIB_TYPE_ENUM_SYM(Name, Detail, Type, UL, Sym)   { TypeEnum, Name, Detail, Type, UL, "", 0, false, false, TypeRefUndefined, NULL, Sym },
 MXFLIB_TYPE_ENUM_SYM - Use to start the definition of a "Enumeration" type and override the default symbol space.
#define MXFLIB_TYPE_ENUM_VALUE(Name, Detail, Value)   { TypeSub, Name, Detail, "", "", Value, 0, false, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_TYPE_ENUM_VALUE - Use to define a value for the current "Enumeration" type.
#define MXFLIB_LABEL(Name, Detail, UL)   { TypeLabel, Name, Detail, "", UL, NULL, 0, false, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_LABEL - Use to define a label.
#define MXFLIB_LABEL_SYM(Name, Detail, UL, Sym)   { TypeLabel, Name, Detail, "", UL, NULL, 0, false, false, TypeRefUndefined, NULL, Sym },
 MXFLIB_LABEL_SYM - Use to define a label and override the default symbol space.
#define MXFLIB_MASKED_LABEL(Name, Detail, UL, Mask)   { TypeLabel, Name, Detail, "", UL, Mask, 0, false, false, TypeRefUndefined, NULL, NULL },
 MXFLIB_MASKED_LABEL - Use to define a masked label.
#define MXFLIB_MASKED_LABEL_SYM(Name, Detail, UL, Mask, Sym)   { TypeLabel, Name, Detail, "", UL, Mask, 0, false, false, TypeRefUndefined, NULL, Sym },
 MXFLIB_MASKED_LABEL_SYM - Use to define a masked label and override the default symbol space.
#define MXFLIB_TYPE_ENUM_END
 MXFLIB_TYPE_ENUM_END - Use to end definition of a "Enumeration" type.
#define MXFLIB_TYPE_END   { TypeNULL, "", "", "", "", "", 0, false, false, TypeRefUndefined, NULL, NULL } };
 MXFLIB_TYPE_END - Use to end a type definition block.
#define MXFLIB_CLASS_START(Name)   const ConstClassRecord Name[] = {
 MXFLIB_CLASS_START - Use to start a class definition block.
#define MXFLIB_CLASS_START_SYM(Name, Sym)   const ConstClassRecord Name[] = { { ClassSymbolSpace, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", Sym, true },
 MXFLIB_CLASS_START_SYM - Use to start a class definition block and define a default symbol space.
#define MXFLIB_CLASS_SET(Name, Detail, Base, UL)   { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_SET - Use to define a local set that has 2-byte tags and 2-byte lengths.
#define MXFLIB_CLASS_SET_SYM(Name, Detail, Base, UL, Sym)   { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, true },
 MXFLIB_CLASS_SET_SYM - Use to define a local set that has 2-byte tags and 2-byte lengths and override the default symbol space.
#define MXFLIB_CLASS_SET_NOSUB(Name, Detail, Base, UL)   { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, false },
 MXFLIB_CLASS_SET_NOSUB - Use to extend a local set that has 2-byte tags and 2-byte lengths, without extending sub-classes.
#define MXFLIB_CLASS_SET_NOSUB_SYM(Name, Detail, Base, UL, Sym)   { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, false },
 MXFLIB_CLASS_SET_NOSUB_SYM - Use to extend a local set that has 2-byte tags and 2-byte lengths, without extending sub-classes, and override the default symbol space.
#define MXFLIB_CLASS_SET_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_SET_END - Use to end a set definition.
#define MXFLIB_CLASS_FIXEDPACK(Name, Detail, Base, UL)   { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_FIXEDPACK - Use to define a fixed length pack (defined length pack).
#define MXFLIB_CLASS_FIXEDPACK_SYM(Name, Detail, Base, UL, Sym)   { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, true },
 MXFLIB_CLASS_FIXEDPACK_SYM - Use to define a fixed length pack (defined length pack) and override the default symbol space.
#define MXFLIB_CLASS_FIXEDPACK_NOSUB(Name, Detail, Base, UL)   { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, false },
 MXFLIB_CLASS_FIXEDPACK - Use to extend a fixed length pack (defined length pack, without extending sub-classes.
#define MXFLIB_CLASS_FIXEDPACK_NOSUB_SYM(Name, Detail, Base, UL, Sym)   { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, false },
 MXFLIB_CLASS_FIXEDPACK_SYM - Use to extend a fixed length pack (defined length pack), without extending sub-classes, and override the default symbol space.
#define MXFLIB_CLASS_FIXEDPACK_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_FIXEDPACK_END - Use to end a pack definition.
#define MXFLIB_CLASS_ITEM(Name, Detail, Usage, Type, MinSize, MaxSize, Tag, UL, Default, DValue)   { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_ITEM - Use to define a single item in a set or pack.
#define MXFLIB_CLASS_ITEM_REF(Name, Detail, Usage, Type, MinSize, MaxSize, Tag, UL, RefType, RefTarget, Default, DValue)   { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, RefType, RefTarget, NULL, true },
 MXFLIB_CLASS_ITEM_REF - Use to define a single item in a set or pack that is a reference source or target.
#define MXFLIB_CLASS_ITEM_SYM(Name, Detail, Usage, Type, MinSize, MaxSize, Tag, UL, Default, DValue, Sym)   { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, ClassRefUndefined, "", Sym, true },
 MXFLIB_CLASS_ITEM_SYM - Use to define a single item in a set or pack and override the default symbol space.
#define MXFLIB_CLASS_ITEM_REF_SYM(Name, Detail, Usage, Type, MinSize, MaxSize, Tag, UL, RefType, RefTarget, Default, DValue, Sym)   { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, RefType, RefTarget, Sym, true },
 MXFLIB_CLASS_ITEM_REF_SYM - Use to define a single item in a set or pack that is a reference source or target and override the default symbol space.
#define MXFLIB_CLASS_VECTOR(Name, Detail, Usage, Tag, UL)   { ClassVector, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_VECTOR - Use to define a vector holding items.
#define MXFLIB_CLASS_VECTOR_REF(Name, Detail, Usage, Tag, UL, RefType, RefTarget)   { ClassVector, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, RefType, RefTarget, NULL, true },
 MXFLIB_CLASS_VECTOR_REF - Use to define a vector holding items that are reference sources or targets.
#define MXFLIB_CLASS_VECTOR_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_VECTOR_END - Use to end a vector definition.
#define MXFLIB_CLASS_ARRAY(Name, Detail, Usage, Tag, UL)   { ClassArray, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_ARRAY - Use to define an array holding items.
#define MXFLIB_CLASS_ARRAY_REF(Name, Detail, Usage, Tag, UL, RefType, RefTarget)   { ClassArray, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, RefType, RefTarget, NULL, true },
 MXFLIB_CLASS_ARRAY - Use to define an array holding items.
#define MXFLIB_CLASS_ARRAY_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_ARRAY_END - Use to end a array definition.
#define MXFLIB_CLASS_RENAME(Name, Detail, Base, UL)   { ClassRename, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },
 MXFLIB_CLASS_RENAME - Use to rename a set or pack without defining new members.
#define MXFLIB_CLASS_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true } };
 MXFLIB_CLASS_END - Use to end a class definition block.
#define MXFLIB_DICTIONARY_START(Name)   const ConstDictionaryRecord Name[] = {
 MXFLIB_DICTIONARY_START - Use to start a type definition block.
#define MXFLIB_DICTIONARY_TYPES(Types)   { DictionaryTypes, Types },
 MXFLIB_DICTIONARY_TYPES - Add a set of types to the current dictionary.
#define MXFLIB_DICTIONARY_CLASSES(Classes)   { DictionaryClasses, Classes },
 MXFLIB_DICTIONARY_CLASSES - Add a set of classes to the current dictionary.
#define MXFLIB_DICTIONARY_END   { DictionaryNULL, NULL } };
 MXFLIB_DICTIONARY_END - Use to end a dictionary definition block.

Typedefs

typedef SmartPtr< TypeRecord > TypeRecordPtr
 A smart pointer to a TypeRecord.
typedef std::list< TypeRecordPtr > TypeRecordList
 List of smart pointers to TypeRecords.
typedef std::list< TypeRecordList > TypeRecordListList
 List of TypeRecordLists.
typedef TypeRef ClassRef
 Referencing types for classes - an exact copy of the type ref kinds.
typedef SmartPtr< ClassRecord > ClassRecordPtr
 A smart pointer to a ClassRecord.
typedef std::list< ClassRecordPtr > ClassRecordList
 List of smart pointers to ClassRecords.
typedef std::list< ClassRecordList > ClassRecordListList
 List of ClassRecordLists.
typedef SmartPtr< Dictionary > DictionaryPtr
 A smart pointer to a Dictionary.
typedef std::list< DictionaryPtr > DictionaryList
 List of smart pointers to Dictionary objects.
typedef SmartPtr< Label > LabelPtr

Enumerations

enum  TypeClass {
  TypeNULL = 0, TypeBasic, TypeInterpretation, TypeMultiple,
  TypeCompound, TypeSub, TypeEnum, TypeLabel,
  TypeSymbolSpace
}
 Enumeration identifying the type of an in-memory type definition entry to be processed by LoadTypes(). More...
enum  TypeRef {
  TypeRefUndefined = -1, TypeRefNone = 0, TypeRefStrong, TypeRefWeak,
  TypeRefTarget, TypeRefGlobal
}
 Referencing kinds for Types. More...
enum  ClassType {
  ClassNULL = 0, ClassPack, ClassSet, ClassVector,
  ClassArray, ClassItem, ClassRename, ClassSymbolSpace
}
 Enumeration identifying the type of an in-memory type definition entry to be processed by LoadTypes(). More...
enum  ClassUsage {
  ClassUsageNULL = 0, ClassUsageOptional, ClassUsageDecoderRequired, ClassUsageEncoderRequired,
  ClassUsageRequired, ClassUsageBestEffort, ClassUsageToxic, ClassUsageDark
}
 Usage types for classes. More...
enum  DictionaryType { DictionaryNULL = 0, DictionaryTypes, DictionaryClasses }
 Enumeration identifying the type of an in-memory dictionary definition entry to be processed by LoadDictionary(). More...

Functions

int LoadTypes (char *TypesFile, SymbolSpacePtr DefaultSymbolSpace)
 Load types from the specified XML definitions.
int LoadTypes (const ConstTypeRecord *TypesData, SymbolSpacePtr DefaultSymbolSpace)
 Load types from the specified in-memory definitions.
int LoadTypes (TypeRecordList &TypesData, SymbolSpacePtr DefaultSymbolSpace)
 Load types from the specified in-memory definitions.
MDTraitsPtr LookupTraits (const char *Name)
 Find the traits for a given type - DEPRECATED.
bool DisableBuiltInTraits (void)
 Disable automatic loading of built-in traits.
int LoadClasses (ClassRecordList &ClassesData, SymbolSpacePtr DefaultSymbolSpace)
 Load classes from the specified in-memory definitions.
int LoadClasses (const ConstClassRecord *ClassData, SymbolSpacePtr DefaultSymbolSpace)
 Load classeses from the specified in-memory definitions.
int LoadDictionary (DictionaryPtr &DictionaryData, SymbolSpacePtr DefaultSymbolSpace, bool FastFail)
 Load dictionary from the specified in-memory definitions with a default symbol space.
int LoadDictionary (DictionaryPtr &DictionaryData, bool FastFail=false, SymbolSpacePtr DefaultSymbolSpace=MXFLibSymbols)
 Load dictionary from the specified in-memory definitions.
int LoadDictionary (const ConstDictionaryRecord *DictionaryData, SymbolSpacePtr DefaultSymbolSpace, bool FastFail)
 Load dictionary from the specified in-memory definitions with a default symbol space.
int LoadDictionary (const ConstDictionaryRecord *DictionaryData, bool FastFail=false, SymbolSpacePtr DefaultSymbolSpace=MXFLibSymbols)
 Load dictionary from the specified in-memory definitions.
int LoadDictionary (const char *DictFile, SymbolSpacePtr DefaultSymbolSpace, bool FastFail)
 Load dictionary from the specified XML definitions with a default symbol space.
int LoadDictionary (std::string DictFile, SymbolSpacePtr DefaultSymbolSpace, bool FastFail=false)
 Load dictionary from the specified XML definitions with a default symbol space.
int LoadDictionary (const char *DictFile, bool FastFail=false, SymbolSpacePtr DefaultSymbolSpace=MXFLibSymbols)
 Load dictionary from the specified XML definitions.
int LoadDictionary (std::string DictFile, bool FastFail=false, SymbolSpacePtr DefaultSymbolSpace=MXFLibSymbols)
 Load dictionary from the specified XML definitions.

Variables

const ClassRef ClassRefUndefined = TypeRefUndefined
 ClassRef version of TypeRefUndefined.
const ClassRef ClassRefNone = TypeRefNone
 ClassRef version of TypeRefNone.
const ClassRef ClassRefStrong = TypeRefStrong
 ClassRef version of TypeRefStrong.
const ClassRef ClassRefWeak = TypeRefWeak
 ClassRef version of TypeRefWeak.
const ClassRef ClassRefGlobal = TypeRefGlobal
 ClassRef version of TypeRefGlobal.
const ClassRef ClassRefTarget = TypeRefTarget
 ClassRef version of TypeRefTarget.


Detailed Description

Definition of classes that load type and class dictionaries.

Version:
Id
deftypes.h,v 1.13 2007/04/01 11:54:24 matt-beard Exp

Define Documentation

#define MXFLIB_CLASS_ARRAY ( Name,
Detail,
Usage,
Tag,
UL   )     { ClassArray, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_ARRAY - Use to define an array holding items.

Parameters:
Name The name of the array being defined
Detail A human readable description of the array
Usage The usage type of this array (ClassUsageRequired, ClassUsageOptional, etc.)
Tag The tag for this array as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")

#define MXFLIB_CLASS_ARRAY_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_ARRAY_END - Use to end a array definition.

#define MXFLIB_CLASS_ARRAY_REF ( Name,
Detail,
Usage,
Tag,
UL,
RefType,
RefTarget   )     { ClassArray, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, RefType, RefTarget, NULL, true },

MXFLIB_CLASS_ARRAY - Use to define an array holding items.

Parameters:
Name The name of the array being defined
Detail A human readable description of the array
Usage The usage type of this array (ClassUsageRequired, ClassUsageOptional, etc.)
Tag The tag for this array as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")

#define MXFLIB_CLASS_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true } };

MXFLIB_CLASS_END - Use to end a class definition block.

#define MXFLIB_CLASS_FIXEDPACK ( Name,
Detail,
Base,
UL   )     { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_FIXEDPACK - Use to define a fixed length pack (defined length pack).

Parameters:
Name The name of the pack being defined
Detail A human readable description of the pack
Base The base class if this pack is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")

#define MXFLIB_CLASS_FIXEDPACK_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_FIXEDPACK_END - Use to end a pack definition.

#define MXFLIB_CLASS_FIXEDPACK_NOSUB ( Name,
Detail,
Base,
UL   )     { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, false },

MXFLIB_CLASS_FIXEDPACK - Use to extend a fixed length pack (defined length pack, without extending sub-classes.

Parameters:
Name The name of the pack being extended
Detail A human readable description of the pack
Base The base class if this pack is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")

#define MXFLIB_CLASS_FIXEDPACK_NOSUB_SYM ( Name,
Detail,
Base,
UL,
Sym   )     { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, false },

MXFLIB_CLASS_FIXEDPACK_SYM - Use to extend a fixed length pack (defined length pack), without extending sub-classes, and override the default symbol space.

Parameters:
Name The name of the pack being extended
Detail A human readable description of the pack
Base The base class if this pack is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
Sym The name of the symbol space for this set

#define MXFLIB_CLASS_FIXEDPACK_SYM ( Name,
Detail,
Base,
UL,
Sym   )     { ClassPack, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, true },

MXFLIB_CLASS_FIXEDPACK_SYM - Use to define a fixed length pack (defined length pack) and override the default symbol space.

Parameters:
Name The name of the pack being defined
Detail A human readable description of the pack
Base The base class if this pack is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
Sym The name of the symbol space for this set

#define MXFLIB_CLASS_ITEM ( Name,
Detail,
Usage,
Type,
MinSize,
MaxSize,
Tag,
UL,
Default,
DValue   )     { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_ITEM - Use to define a single item in a set or pack.

Parameters:
Name The name of the item being defined
Detail A human readable description of the item
Usage The usage type of this item (ClassUsageRequired, ClassUsageOptional, etc.)
Type The type of this item
Tag The tag for this item as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
Default The default value for this item as a string (or NULL if none)
DValue The distinguished value for this item as a string (or NULL if none)

#define MXFLIB_CLASS_ITEM_REF ( Name,
Detail,
Usage,
Type,
MinSize,
MaxSize,
Tag,
UL,
RefType,
RefTarget,
Default,
DValue   )     { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, RefType, RefTarget, NULL, true },

MXFLIB_CLASS_ITEM_REF - Use to define a single item in a set or pack that is a reference source or target.

Parameters:
Name The name of the item being defined
Detail A human readable description of the item
Usage The usage type of this item (ClassUsageRequired, ClassUsageOptional, etc.)
Type The type of this item
Tag The tag for this item as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
Default The default value for this item as a string (or NULL if none)
DValue The distinguished value for this item as a string (or NULL if none)
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target

#define MXFLIB_CLASS_ITEM_REF_SYM ( Name,
Detail,
Usage,
Type,
MinSize,
MaxSize,
Tag,
UL,
RefType,
RefTarget,
Default,
DValue,
Sym   )     { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, RefType, RefTarget, Sym, true },

MXFLIB_CLASS_ITEM_REF_SYM - Use to define a single item in a set or pack that is a reference source or target and override the default symbol space.

Parameters:
Name The name of the item being defined
Detail A human readable description of the item
Usage The usage type of this item (ClassUsageRequired, ClassUsageOptional, etc.)
Type The type of this item
Tag The tag for this item as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target
Default The default value for this item as a string (or NULL if none)
DValue The distinguished value for this item as a string (or NULL if none)
Sym The name of the symbol space for this set

#define MXFLIB_CLASS_ITEM_SYM ( Name,
Detail,
Usage,
Type,
MinSize,
MaxSize,
Tag,
UL,
Default,
DValue,
Sym   )     { ClassItem, MinSize, MaxSize, Name, Detail, Usage, Type, Tag, UL, Default, DValue, ClassRefUndefined, "", Sym, true },

MXFLIB_CLASS_ITEM_SYM - Use to define a single item in a set or pack and override the default symbol space.

Parameters:
Name The name of the item being defined
Detail A human readable description of the item
Usage The usage type of this item (ClassUsageRequired, ClassUsageOptional, etc.)
Type The type of this item
Tag The tag for this item as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
Default The default value for this item as a string (or NULL if none)
DValue The distinguished value for this item as a string (or NULL if none)
Sym The name of the symbol space for this set

#define MXFLIB_CLASS_RENAME ( Name,
Detail,
Base,
UL   )     { ClassRename, 0, 0, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_RENAME - Use to rename a set or pack without defining new members.

Parameters:
Name The name of the class being defined
Detail A human readable description of the class
Base The base class of which this is a rename
UL The UL of this class (if one exists, else "")

#define MXFLIB_CLASS_SET ( Name,
Detail,
Base,
UL   )     { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_SET - Use to define a local set that has 2-byte tags and 2-byte lengths.

Parameters:
Name The name of the set being defined
Detail A human readable description of the set
Base The base class if this set is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")

#define MXFLIB_CLASS_SET_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_SET_END - Use to end a set definition.

#define MXFLIB_CLASS_SET_NOSUB ( Name,
Detail,
Base,
UL   )     { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", NULL, false },

MXFLIB_CLASS_SET_NOSUB - Use to extend a local set that has 2-byte tags and 2-byte lengths, without extending sub-classes.

Parameters:
Name The name of the set being extended
Detail A human readable description of the set
Base The base class if this set is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")

#define MXFLIB_CLASS_SET_NOSUB_SYM ( Name,
Detail,
Base,
UL,
Sym   )     { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, false },

MXFLIB_CLASS_SET_NOSUB_SYM - Use to extend a local set that has 2-byte tags and 2-byte lengths, without extending sub-classes, and override the default symbol space.

Parameters:
Name The name of the set being extended
Detail A human readable description of the set
Base The base class if this set is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
Sym The name of the symbol space for this set

#define MXFLIB_CLASS_SET_SYM ( Name,
Detail,
Base,
UL,
Sym   )     { ClassSet, 2, 2, Name, Detail, ClassUsageNULL, Base, 0, UL, NULL, NULL, ClassRefUndefined, "", Sym, true },

MXFLIB_CLASS_SET_SYM - Use to define a local set that has 2-byte tags and 2-byte lengths and override the default symbol space.

Parameters:
Name The name of the set being defined
Detail A human readable description of the set
Base The base class if this set is a derived class, else ""
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
Sym The name of the symbol space for this set

#define MXFLIB_CLASS_START ( Name   )     const ConstClassRecord Name[] = {

MXFLIB_CLASS_START - Use to start a class definition block.

#define MXFLIB_CLASS_START_SYM ( Name,
Sym   )     const ConstClassRecord Name[] = { { ClassSymbolSpace, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", Sym, true },

MXFLIB_CLASS_START_SYM - Use to start a class definition block and define a default symbol space.

#define MXFLIB_CLASS_VECTOR ( Name,
Detail,
Usage,
Tag,
UL   )     { ClassVector, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_VECTOR - Use to define a vector holding items.

Parameters:
Name The name of the vector being defined
Detail A human readable description of the vector
Usage The usage type of this vector (ClassUsageRequired, ClassUsageOptional, etc.)
Tag The tag for this vector as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")

#define MXFLIB_CLASS_VECTOR_END   { ClassNULL, 0, 0, "", "", ClassUsageNULL, "", 0, "", NULL, NULL, ClassRefUndefined, "", NULL, true },

MXFLIB_CLASS_VECTOR_END - Use to end a vector definition.

#define MXFLIB_CLASS_VECTOR_REF ( Name,
Detail,
Usage,
Tag,
UL,
RefType,
RefTarget   )     { ClassVector, 0, 0, Name, Detail, Usage, "", Tag, UL, NULL, NULL, RefType, RefTarget, NULL, true },

MXFLIB_CLASS_VECTOR_REF - Use to define a vector holding items that are reference sources or targets.

Parameters:
Name The name of the vector being defined
Detail A human readable description of the vector
Usage The usage type of this vector (ClassUsageRequired, ClassUsageOptional, etc.)
Tag The tag for this vector as a string of hex bytes e.g. "03 2b" (if in a set, else "")
UL The UL of this class as a hex string e.g. "06 0e 2b 34 etc." (if one exists, else "")
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target

#define MXFLIB_DICTIONARY_CLASSES ( Classes   )     { DictionaryClasses, Classes },

MXFLIB_DICTIONARY_CLASSES - Add a set of classes to the current dictionary.

#define MXFLIB_DICTIONARY_END   { DictionaryNULL, NULL } };

MXFLIB_DICTIONARY_END - Use to end a dictionary definition block.

#define MXFLIB_DICTIONARY_START ( Name   )     const ConstDictionaryRecord Name[] = {

MXFLIB_DICTIONARY_START - Use to start a type definition block.

#define MXFLIB_DICTIONARY_TYPES ( Types   )     { DictionaryTypes, Types },

MXFLIB_DICTIONARY_TYPES - Add a set of types to the current dictionary.

#define MXFLIB_LABEL ( Name,
Detail,
UL   )     { TypeLabel, Name, Detail, "", UL, NULL, 0, false, false, TypeRefUndefined, NULL, NULL },

MXFLIB_LABEL - Use to define a label.

Parameters:
Name The name of the label being defined
Detail A human readable description of the label
UL The UL, or end-swapped UUID of thsi label

#define MXFLIB_LABEL_SYM ( Name,
Detail,
UL,
Sym   )     { TypeLabel, Name, Detail, "", UL, NULL, 0, false, false, TypeRefUndefined, NULL, Sym },

MXFLIB_LABEL_SYM - Use to define a label and override the default symbol space.

Parameters:
Name The name of the label being defined
Detail A human readable description of the label
UL The UL, or end-swapped UUID of thsi label
Sym The name of the symbol space for this type

#define MXFLIB_MASKED_LABEL ( Name,
Detail,
UL,
Mask   )     { TypeLabel, Name, Detail, "", UL, Mask, 0, false, false, TypeRefUndefined, NULL, NULL },

MXFLIB_MASKED_LABEL - Use to define a masked label.

Parameters:
Name The name of the label being defined
Detail A human readable description of the label
UL The UL, or end-swapped UUID of thsi label
Mask The mask of bits that can change in this label

#define MXFLIB_MASKED_LABEL_SYM ( Name,
Detail,
UL,
Mask,
Sym   )     { TypeLabel, Name, Detail, "", UL, Mask, 0, false, false, TypeRefUndefined, NULL, Sym },

MXFLIB_MASKED_LABEL_SYM - Use to define a masked label and override the default symbol space.

Parameters:
Name The name of the label being defined
Detail A human readable description of the label
UL The UL, or end-swapped UUID of thsi label
Mask The mask of bits that can change in this label
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_BASIC ( Name,
Detail,
UL,
Size,
Endian   )     { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, TypeRefUndefined, NULL, NULL },

MXFLIB_TYPE_BASIC - Use to define a "Basic" type.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Size The number of bytes used to store this type (must be > 0)
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Endian "true" if this type gets endian swapped on reading/writing on a little-endian platform

#define MXFLIB_TYPE_BASIC_REF ( Name,
Detail,
UL,
Size,
Endian,
RefType,
RefTarget   )     { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, RefType, RefTarget, NULL },

MXFLIB_TYPE_BASIC_REF - Use to define a "Basic" type that is a reference source or target.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Size The number of bytes used to store this type (must be > 0)
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Endian "true" if this type gets endian swapped on reading/writing on a little-endian platform
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target

#define MXFLIB_TYPE_BASIC_REF_SYM ( Name,
Detail,
UL,
Size,
Endian,
RefType,
RefTarget,
Sym   )     { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, RefType, RefTarget, Sym },

MXFLIB_TYPE_BASIC_REF_SYM - Use to define a "Basic" type that is a reference source or target and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Size The number of bytes used to store this type (must be > 0)
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Endian "true" if this type gets endian swapped on reading/writing on a little-endian platform
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_BASIC_SYM ( Name,
Detail,
UL,
Size,
Endian,
Sym   )     { TypeBasic, Name, Detail, "", UL, "", Size, Endian, false, TypeRefUndefined, NULL, Sym },

MXFLIB_TYPE_BASIC_SYM - Use to define a "Basic" type and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Size The number of bytes used to store this type (must be > 0)
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Endian "true" if this type gets endian swapped on reading/writing on a little-endian platform
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_COMPOUND ( Name,
Detail,
UL   )     { TypeCompound, Name, Detail, "", UL, "", 0, false, false, TypeRefUndefined, NULL, NULL },

MXFLIB_TYPE_COMPOUND - Use to start the definition of a "Compound" type.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type

#define MXFLIB_TYPE_COMPOUND_END

MXFLIB_TYPE_COMPOUND_END - Use to end definition of a "Compound" type.

#define MXFLIB_TYPE_COMPOUND_ITEM ( Name,
Detail,
Type,
UL,
Size   )     { TypeSub, Name, Detail, Type, UL, "", Size, false, false, TypeRefUndefined, NULL, NULL },

MXFLIB_TYPE_COMPOUND_ITEM - Use to define an item within the current "Compound" type.

Parameters:
Name The name of the item being defined
Detail A human readable description of the item
Type The type of this item within the compound
UL The UL, or endian-swapped UUID, for this item (or "" to force one to be generated)
Size If non-zero this fixes the number of entries in a variable-length array

#define MXFLIB_TYPE_COMPOUND_SYM ( Name,
Detail,
UL,
Sym   )     { TypeCompound, Name, Detail, "", UL, "", 0, false, false, TypeRefUndefined, NULL, Sym },

MXFLIB_TYPE_COMPOUND_SYM - Use to start the definition of a "Compound" type and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_END   { TypeNULL, "", "", "", "", "", 0, false, false, TypeRefUndefined, NULL, NULL } };

MXFLIB_TYPE_END - Use to end a type definition block.

#define MXFLIB_TYPE_ENUM ( Name,
Detail,
Type,
UL   )     { TypeEnum, Name, Detail, Type, UL, "", 0, false, false, TypeRefUndefined, NULL, NULL },

MXFLIB_TYPE_ENUM - Use to start the definition of an "Enumeration" type.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Type The type of the values in this enumeration

#define MXFLIB_TYPE_ENUM_END

MXFLIB_TYPE_ENUM_END - Use to end definition of a "Enumeration" type.

#define MXFLIB_TYPE_ENUM_SYM ( Name,
Detail,
Type,
UL,
Sym   )     { TypeEnum, Name, Detail, Type, UL, "", 0, false, false, TypeRefUndefined, NULL, Sym },

MXFLIB_TYPE_ENUM_SYM - Use to start the definition of a "Enumeration" type and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Type The type of the values in this enumeration
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_ENUM_VALUE ( Name,
Detail,
Value   )     { TypeSub, Name, Detail, "", "", Value, 0, false, false, TypeRefUndefined, NULL, NULL },

MXFLIB_TYPE_ENUM_VALUE - Use to define a value for the current "Enumeration" type.

Parameters:
Name The name of the value being defined
Detail A human readable description of the value
Value The value being defined

#define MXFLIB_TYPE_INTERPRETATION ( Name,
Detail,
Base,
UL,
Size   )     { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, TypeRefUndefined, NULL, NULL },

MXFLIB_TYPE_INTERPRETATION - Use to define an "Interpretation" type.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type that this is an interpretation of
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Size If non-zero this fixes the number of entries in the variable-length base array

#define MXFLIB_TYPE_INTERPRETATION_REF ( Name,
Detail,
Base,
UL,
Size,
RefType,
RefTarget   )     { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, RefType, RefTarget, NULL },

MXFLIB_TYPE_INTERPRETATION_REF - Use to define an "Interpretation" type that is a reference source or target.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type that this is an interpretation of
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Size If non-zero this fixes the number of entries in the variable-length base array
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target

#define MXFLIB_TYPE_INTERPRETATION_REF_SYM ( Name,
Detail,
Base,
UL,
Size,
RefType,
RefTarget,
Sym   )     { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, RefType, RefTarget, Sym },

MXFLIB_TYPE_INTERPRETATION_REF_SYM - Use to define an "Interpretation" type that is a reference source or target and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type that this is an interpretation of
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Size If non-zero this fixes the number of entries in the variable-length base array
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_INTERPRETATION_SYM ( Name,
Detail,
Base,
UL,
Size,
Sym   )     { TypeInterpretation, Name, Detail, Base, UL, "", Size, false, false, TypeRefUndefined, NULL, Sym },

MXFLIB_TYPE_INTERPRETATION_SYM - Use to define an "Interpretation" type and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type that this is an interpretation of
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
Size If non-zero this fixes the number of entries in the variable-length base array
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_MULTIPLE ( Name,
Detail,
Base,
UL,
IsBatch,
Size   )     { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, TypeRefUndefined, NULL, NULL },

MXFLIB_TYPE_MULTIPLE - Use to define a "Multiple" type.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type of which this is a multiple
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
IsBatch "true" is this type has an 8-byte Count-and-Size header
Size If non-zero this fixes the number of entries, if zero the size is variable

#define MXFLIB_TYPE_MULTIPLE_REF ( Name,
Detail,
Base,
UL,
IsBatch,
Size,
RefType,
RefTarget   )     { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, RefType, RefTarget, NULL },

MXFLIB_TYPE_MULTIPLE_REF - Use to define a "Multiple" type that is a reference source or target.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type of which this is a multiple
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
IsBatch "true" is this type has an 8-byte Count-and-Size header
Size If non-zero this fixes the number of entries, if zero the size is variable
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target

#define MXFLIB_TYPE_MULTIPLE_REF_SYM ( Name,
Detail,
Base,
UL,
IsBatch,
Size,
RefType,
RefTarget,
Sym   )     { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, RefType, RefTarget, Sym },

MXFLIB_TYPE_MULTIPLE_REF_SYM - Use to define a "Multiple" type that is a reference source or target and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type of which this is a multiple
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
IsBatch "true" is this type has an 8-byte Count-and-Size header
Size If non-zero this fixes the number of entries, if zero the size is variable
RefType The reference type (RefWeak, RefStrong or RefTarget)
RefTarget The type of the reference target
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_MULTIPLE_SYM ( Name,
Detail,
Base,
UL,
IsBatch,
Size,
Sym   )     { TypeMultiple, Name, Detail, Base, UL, "", Size, false, IsBatch, TypeRefUndefined, NULL, Sym },

MXFLIB_TYPE_MULTIPLE_SYM - Use to define a "Multiple" type and override the default symbol space.

Parameters:
Name The name of the type being defined
Detail A human readable description of the type
Base The type of which this is a multiple
UL The UL, or endian-swapped UUID, for this type (or "" to force one to be generated)
IsBatch "true" is this type has an 8-byte Count-and-Size header
Size If non-zero this fixes the number of entries, if zero the size is variable
Sym The name of the symbol space for this type

#define MXFLIB_TYPE_START ( Name   )     const ConstTypeRecord Name[] = {

MXFLIB_TYPE_START - Use to start a type definition block.

#define MXFLIB_TYPE_START_SYM ( Name,
Sym   )     const ConstTypeRecord Name[] = { { TypeSymbolSpace, "", "", "", "", "", 0, false, false, TypeRefUndefined, NULL, Sym },

MXFLIB_TYPE_START_SYM - Use to start a type definition block and define a default symbol space.


Generated on Mon Apr 2 15:20:54 2007 for MXFLib by  doxygen 1.5.1-p1