Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef lgrHlaAttribute_H_
00011 #define lgrHlaAttribute_H_
00012
00013 #if DtHLA
00014
00015 #include "lgrSim.h"
00016 #include "lgrVariableLengthData.h"
00017
00018 #include "absoluteTime.h"
00019
00020 #include <vl/rtiCompatibility.h>
00021 #include <list>
00022 #include <map>
00023
00024 class DtInteraction;
00025
00026 #if !DtHLA_1516
00027
00028 #include <vl/rtiNamespace.h>
00029
00030 #endif
00031
00032 namespace MAKLogger
00033 {
00034
00035 class DtLgrOnlineFomDesc;
00036 class DtBaseObjClassDesc;
00037 class DtBaseInterClassDesc;
00038
00042 typedef DtU32 DtLgrHlaHandle;
00043
00046 class DT_DLL_LGRSIM DtLgrValueReference
00047 {
00048 public:
00049 DtLgrValueReference(const char* data,DtU32 size) : data(data),size(size){}
00050 const char* data;
00051 unsigned int size;
00052 };
00053
00054 typedef std::map<DtLgrHlaHandle,DtLgrValueReference> DtLgrHandleValueReferenceMap;
00055 typedef std::map<DtLgrHlaHandle,DtLgrVariableLengthData> DtLgrHandleValueMap;
00056 typedef std::pair<DtAbsoluteTime,DtLgrHandleValueMap*> DtTimedHandleValueMap;
00057 typedef std::list<DtTimedHandleValueMap> DtTimedHandleValueMapList;
00058
00061 class DT_DLL_LGRSIM DtLgrValueMapFactory
00062 {
00063 public:
00064
00065 #if DtHLA_1516
00066 static void convertRtiData(const DtLgrOnlineFomDesc& fomDesc,
00067 const DtBaseInterClassDesc &classDesc, const RTI::ParameterHandleValueMap& phvm,
00068 DtLgrHandleValueReferenceMap& lgrMap);
00069
00070 static void convertRtiData(const DtLgrOnlineFomDesc& fomDesc,
00071 const DtBaseObjClassDesc&,
00072 const RTI::AttributeHandleValueMap&,
00073 DtLgrHandleValueMap&);
00074
00075 static void convertRtiData(const DtLgrOnlineFomDesc& fomDesc,
00076 const DtBaseObjClassDesc&,
00077 const RTI::AttributeHandleValueMap&,
00078 DtLgrHandleValueReferenceMap&);
00079 #else
00080 static void convertRtiData(const DtLgrOnlineFomDesc& fomDesc,
00081 const RTI::ParameterHandleValuePairSet& rtiSet, DtLgrHandleValueReferenceMap& lgrMap);
00082
00083 static void convertRtiData(const RTI::AttributeHandleValuePairSet*,
00084 DtLgrHandleValueMap& map);
00085
00086 static void convertRtiData(const RTI::AttributeHandleValuePairSet*,
00087 DtLgrHandleValueReferenceMap& map);
00088 #endif
00089
00090
00091 #if DtHLA_1516
00092 static void createRtiAttributeData(const DtLgrOnlineFomDesc& fom,
00093 const DtBaseObjClassDesc&, const DtLgrHandleValueMap&,
00094 RTI::AttributeHandleValueMap& );
00095
00096 static void createRtiParameterData(const DtLgrOnlineFomDesc& fom,
00097 const DtBaseInterClassDesc&, const DtLgrHandleValueMap&,
00098 RTI::ParameterHandleValueMap& );
00099 #else
00100 static RTI::AttributeHandleValuePairSet* createRtiAttributeData(
00101 const DtLgrHandleValueMap&);
00102
00103 static RTI::ParameterHandleValuePairSet* createRtiParameterData(
00104 const DtLgrHandleValueMap&);
00105 #endif
00106
00107 };
00108
00109
00110 }
00111
00112 #endif
00113 #endif