![]() |
VR-Link API Documentation for DIS
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00006 #ifndef hFedDec_H_ 00007 #define hFedDec_H_ 00008 00009 #if DtHLA 00010 00014 00015 #include <vlutil/vlString.h> 00016 #include <vlutil/vlTime.h> 00017 #include "hStateDecoder.h" 00018 00019 class DtFederateStateRepository; 00020 00023 #define DtDECLARE_FEDERATE_ATTR_DECODER(attrName) \ 00024 DtDECLARE_ATTR_DECODER(DtFederateStateRepository, attrName) 00025 00031 class DT_DLL_VL DtFederateDecoder : public DtHlaStateDecoder 00032 { 00033 public: 00035 DtFederateDecoder( 00036 DtExerciseConn* exConn, 00037 DtObjClassDesc* classDesc); 00038 00040 virtual ~DtFederateDecoder(); 00041 00043 DtFederateDecoder(const DtFederateDecoder& orig); 00044 00046 DtFederateDecoder& operator=(const DtFederateDecoder& orig); 00047 00048 public: 00050 static DtHlaStateDecoder* create( 00051 DtExerciseConn* exConn, 00052 DtObjClassDesc* classDesc); 00053 00054 00055 protected: 00056 DtDECLARE_FEDERATE_ATTR_DECODER(FederateHandle); 00057 DtDECLARE_FEDERATE_ATTR_DECODER(FederateType); 00058 #if DtHLA_1516 00059 DtDECLARE_FEDERATE_ATTR_DECODER(ConveyRegionDesignatorSets); 00060 #endif 00061 #if DtHLA_1516_EVOLVED 00062 DtDECLARE_FEDERATE_ATTR_DECODER(FederateName); 00063 DtDECLARE_FEDERATE_ATTR_DECODER(FomModuleDesignatorList); 00064 DtDECLARE_FEDERATE_ATTR_DECODER(ConveyProducingFederate); 00065 #else 00066 DtDECLARE_FEDERATE_ATTR_DECODER(FedId); 00067 #endif 00068 DtDECLARE_FEDERATE_ATTR_DECODER(FederateHost); 00069 DtDECLARE_FEDERATE_ATTR_DECODER(RtiVersion); 00070 DtDECLARE_FEDERATE_ATTR_DECODER(TimeConstrained); 00071 DtDECLARE_FEDERATE_ATTR_DECODER(TimeRegulating); 00072 DtDECLARE_FEDERATE_ATTR_DECODER(AsynchronousDelivery); 00073 DtDECLARE_FEDERATE_ATTR_DECODER(FederateState); 00074 DtDECLARE_FEDERATE_ATTR_DECODER(TimeManagerState); 00075 DtDECLARE_FEDERATE_ATTR_DECODER(FederateTime); 00076 DtDECLARE_FEDERATE_ATTR_DECODER(Lookahead); 00077 DtDECLARE_FEDERATE_ATTR_DECODER(Lbts); 00078 DtDECLARE_FEDERATE_ATTR_DECODER(MinNextEventTime); 00079 DtDECLARE_FEDERATE_ATTR_DECODER(RoLength); 00080 DtDECLARE_FEDERATE_ATTR_DECODER(TsoLength); 00081 DtDECLARE_FEDERATE_ATTR_DECODER(ReflectionsReceived); 00082 DtDECLARE_FEDERATE_ATTR_DECODER(UpdatesSent); 00083 DtDECLARE_FEDERATE_ATTR_DECODER(InteractionsReceived); 00084 DtDECLARE_FEDERATE_ATTR_DECODER(InteractionsSent); 00085 DtDECLARE_FEDERATE_ATTR_DECODER(ObjectsOwned); 00086 DtDECLARE_FEDERATE_ATTR_DECODER(ObjectsUpdated); 00087 DtDECLARE_FEDERATE_ATTR_DECODER(ObjectsReflected); 00088 #if DtHLA_1516 00089 DtDECLARE_FEDERATE_ATTR_DECODER(ObjectsDeleted); 00090 DtDECLARE_FEDERATE_ATTR_DECODER(ObjectsRemoved); 00091 DtDECLARE_FEDERATE_ATTR_DECODER(ObjectsRegistered); 00092 DtDECLARE_FEDERATE_ATTR_DECODER(ObjectsDiscovered); 00093 DtDECLARE_FEDERATE_ATTR_DECODER(TimeGrantedTime); 00094 DtDECLARE_FEDERATE_ATTR_DECODER(TimeAdvancingTime); 00095 #endif 00096 00097 static DtString stringFromBuffer(char* buffer); 00098 static std::vector<DtString> momStringListFromBuffer(char* buffer, int len); 00099 00100 static bool boolFromBuffer(char* buffer); 00101 static int intFromBuffer(char* buffer); 00102 static DtString stringFromTime(char* buffer); 00103 static DtString stringFromTimeInterval(char* buffer); 00104 }; 00105 00106 00107 #endif 00108 #endif