VR-Forces 4.0.4 Class Documentation
include/vrfmsgs/vrfObjectMessage.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)