![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: vrfObjectMessage.h,v $ $Revision: 1.5 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef vrfObjectMessage_h 00015 #define vrfObjectMessage_h 00016 00017 #include "vrfmsgs/simMsg.h" 00018 #include "vrfmsgs/vrfObjectMessageFactory.h" 00019 #include <vlutil/vlNetTypes.h> 00020 #include "vrfmsgs/vrfmsgsDefines.h" 00021 #include <vlutil/vlSmartPointers.h> 00022 00025 const char DtVrfObjectMessageSendToAll[] = "DtBroadcast"; 00028 const char DtVrfObjectMessageFrontEndAddress[] = "DtVrfFrontEnd"; 00029 00033 struct DtNetVrfObjectMessage 00034 { 00035 DtNetU32 myUnused; 00036 DtNetU8 myTransmitterLength; 00037 DtNetU8 myReceiverLength; 00038 DtNetBoolean myReceiverIsEchelonId; 00039 DtNetBoolean myTransmitterIsEchelonId; 00040 00041 00042 }; 00043 00047 class DT_DLL_vrfmsgs DtVrfObjectMessage : public DtSimMessage 00048 { 00049 00050 public: 00051 00053 DtVrfObjectMessage(); 00054 00056 DtVrfObjectMessage(const DtVrfObjectMessage& orig); 00057 00059 const DtVrfObjectMessage& operator=(const DtVrfObjectMessage & orig); 00060 00062 virtual ~DtVrfObjectMessage(); 00063 00065 virtual int messageType() const; 00066 00069 virtual int contentCategoryType() const = 0; 00070 00072 virtual int radioMessageType() const; 00073 00077 virtual int contentType() const = 0; 00078 00086 00087 virtual void setReceiver(const DtString& receiver); 00088 virtual const DtString& receiver() const; 00090 00093 00094 virtual void setReceiverIsEchelonId(bool yesNo); 00095 virtual bool receiverIsEchelonId() const; 00097 00103 00104 virtual void setTransmitter(const DtString& transmitter); 00105 virtual const DtString& transmitter() const; 00107 00110 00111 virtual void setTransmitterIsEchelonId(bool yesNo); 00112 virtual bool transmitterIsEchelonId() const; 00114 00116 virtual void setRecipient(const DtString& recipient); 00118 virtual const DtString& recipient() const; 00119 00121 virtual void setSender(const DtString & sender); 00123 virtual const DtString& sender()const; 00124 00127 virtual char* netRep(); 00128 00131 virtual int netRepSize() const; 00132 00134 virtual bool setFromNet(const char* networkBuffer, 00135 unsigned contentSize); 00136 00137 00139 virtual bool setToNet(); 00140 00142 virtual void printDataToString(DtString& str); 00143 00145 static DtVrfObjectMessage* createVrfObjectMessage(int type); 00147 static DtVrfObjectMessage* createRadioMessage(int type); 00148 00150 static void addVrfObjectMessageCreatorFcn(int type, 00151 DtVrfObjectMessageCreatorFcn fcn); 00153 static void addRadioMessageCreatorFcn(int type, 00154 DtVrfObjectMessageCreatorFcn fcn); 00155 00156 static void setFactory(DtVrfObjectMessageFactory* factory); 00157 00158 static DtVrfObjectMessageFactory* factory(); 00159 00160 protected: 00161 virtual char* createNetworkBuffer(); 00162 00163 protected: 00164 DtString myTransmitter; 00165 DtString myReceiver; 00166 bool myTransmitterIsEchelonId; 00167 bool myReceiverIsEchelonId; 00168 char* myNetRep; 00169 00170 static DtVrfObjectMessageFactory* myFactory; 00171 00172 }; 00173 00174 namespace DtBufferSerialize 00175 { 00178 DT_DLL_vrfmsgs int getSize(const DtVrfObjectMessage* const& messagePtr); 00179 00184 DT_DLL_vrfmsgs char *encode(const DtVrfObjectMessage* const& messagePtr, char *buffer); 00185 00194 DT_DLL_vrfmsgs const char *decode(DtVrfObjectMessage*& messagePtr, const char *buffer); 00195 } 00196 00198 typedef DtBoost::shared_ptr<const DtVrfObjectMessage> DtVrfObjectMessageConstPtr; 00200 typedef DtBoost::shared_ptr<DtVrfObjectMessage> DtVrfObjectMessagePtr; 00201 00202 #endif