![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtReflectedRadioTransmitter_H_ 00011 #define DtReflectedRadioTransmitter_H_ 00012 00013 #if DtDIS 00014 00015 #include "dReflectedObj.h" 00016 #include "dRadioXmitDec.h" 00017 #include "transmitPdu.h" 00018 #include "globalObjDes.h" 00019 #include <vlutil/vlHashKeys.h> 00020 00021 class DT_DLL_VL DtRadioTransmitterRepository; 00022 class DT_DLL_VL DtExerciseConn; 00023 class DT_DLL_VL DtReflectedRadioTransmitter; 00024 00028 typedef void (*DtRadioTransmitterCallbackFunction) ( 00029 DtReflectedRadioTransmitter* obj, void* userData); 00030 00033 class DT_DLL_VL DtReflectedRadioTransmitter : public DtReflectedObject 00034 { 00035 00036 public: 00037 00039 typedef DtRadioTransmitterRepository* (*DtStateRepCreator)(); 00040 00041 public: 00042 00044 DtReflectedRadioTransmitter( 00045 DtExerciseConn* conn, 00046 const DtEntityIdentifier& id, 00047 int radioId); 00048 00050 virtual ~DtReflectedRadioTransmitter(); 00051 00054 virtual DtRadioTransmitterRepository* radioXmitRep() const; 00055 00057 virtual DtRadioTransmitterRepository* tsr() const; 00058 00060 virtual DtStateRepository* stateRep() const; 00061 00064 virtual DtRadioTransmitterDecoder* decoder(); 00065 00067 virtual const DtEntityIdentifier& entityId() const; 00068 00070 virtual const DtObjectId& id() const; 00071 00073 virtual const DtObjectId& localId() const; 00074 00077 virtual const DtGlobalObjectDesignator& globalId() const; 00078 00080 virtual int radioId() const; 00081 00084 virtual void processStateMessage(const DtStateMsg& msg); 00085 00088 virtual DtReflectedRadioTransmitter* next() const; 00089 virtual DtReflectedRadioTransmitter* prev() const; 00090 00092 virtual DtReflectedRadioTransmitter* wrapNext() const; 00093 virtual DtReflectedRadioTransmitter* wrapPrev() const; 00094 00096 virtual void addPostUpdateCallback( 00097 DtRadioTransmitterCallbackFunction cb, void* userData); 00098 virtual void removePostUpdateCallback( 00099 DtRadioTransmitterCallbackFunction cb, void* userData); 00100 00102 virtual const DtBaseHashKey& hashKey() const; 00103 00105 virtual DtString idString() const; 00106 00109 virtual void processRadioTransmitter(const DtTransmitterPdu& pdu); 00110 00111 public: 00112 00114 static void setStateRepCreator(DtStateRepCreator creator); 00115 static DtStateRepCreator stateRepCreator(); 00116 00117 protected: 00118 00120 DtReflectedRadioTransmitter(const DtReflectedRadioTransmitter& orig); 00121 00123 DtReflectedRadioTransmitter& operator=(const DtReflectedRadioTransmitter& orig); 00124 00125 protected: 00126 00127 DtEntityIdentifier myId; 00128 DtRadioTransmitterRepository *myStateRep; 00129 DtRadioTransmitterDecoder *myDecoder; 00130 DtStringHashKey myHashKey; 00131 DtString myIdString; 00132 00133 protected: 00134 00135 static DtStateRepCreator theStateRepCreator; 00136 00137 }; 00138 00139 inline int DtReflectedRadioTransmitter::radioId() const 00140 { 00141 return myStateRep->radioId(); 00142 } 00143 00144 #endif 00145 #endif 00146