MAK RTIspy API Documentation for HLA Evolved
interRoMsg.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1998 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: interRoMsg.h,v $ $Revision: 1.13 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtInteractRoMsg_H_
00013 #define DtInteractRoMsg_H_
00014 
00015 #include "interactMsg.h"
00016 #include "netInterMsg.h"
00017 
00019 
00020 class DT_DLL_LRC DtInteractionRoMsg : public DtInteractionMsg
00021 {
00022 public:
00023 
00025    DtInteractionRoMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00026 
00027    DtInteractionRoMsg(
00028       DtInteractionClassHandle theInteraction,
00029       const DtPhvps& theParameters,
00030 #ifdef DtIFSPEC1516
00031       rti1516::VariableLengthData const& theTag,
00032 #elif defined(DtIFSPEC1516E)
00033       rti1516e::VariableLengthData const& theTag,
00034 #else
00035       char const * theTag,
00036 #endif
00037       unsigned long channel,
00038       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00039 
00040    DtInteractionRoMsg(const DtNetInteractionMsg* netRepMsg,
00041       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00042 
00044    virtual ~DtInteractionRoMsg();
00045 
00047    virtual DtRtiMsg* clone(bool copy = true) const; 
00048 
00050    virtual void set(
00051       DtInteractionClassHandle theInteraction,
00052       const DtPhvps& theParameters,
00053 #ifdef DtIFSPEC1516
00054       rti1516::VariableLengthData const& theTag,
00055 #elif defined(DtIFSPEC1516E)
00056       rti1516e::VariableLengthData const& theTag,
00057 #else
00058       char const * theTag,
00059 #endif
00060       unsigned long channel);
00061 
00063    virtual void setHandle(DtInteractionClassHandle hand);
00064    virtual DtInteractionClassHandle handle() const;
00065 
00067    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00068 
00069 public:
00070 
00072    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00073    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00074       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00075 
00077    static void addCallback(DtConnectionMgr *conn,
00078       DtInteractionCb cb, void *usr, bool isMomCallback=false);
00079    static void removeCallback(DtConnectionMgr *conn,
00080       DtInteractionCb cb, void *usr, bool isMomCallback=false);
00081 
00082 protected:
00083 
00085    virtual DtNetParams* netParams();
00086    virtual DtNetBigParams* netBigParams();
00087 
00089    virtual DtNetInteractionMsg* netInterRoMsg();
00090    virtual const DtNetInteractionMsg* netInterRoMsg() const;
00091 
00093    virtual DtRtiMsgKind internalDtRtiMsgKind();
00094 
00096    virtual int minSize(const DtPhvps* params=NULL,
00097 #ifdef DtIFSPEC1516
00098       rti1516::VariableLengthData const& theTag=theDefaultTag) const;
00099 #elif defined(DtIFSPEC1516E)
00100       rti1516e::VariableLengthData const& theTag=theDefaultTag) const;
00101 #else
00102       char const * theTag=NULL) const;
00103 #endif
00104 
00106    virtual void setTagSize(int size);
00107    virtual int tagSize() const;
00108 
00110    virtual DtNetU32* channelPtr() const;
00111 
00113    virtual char* tagPtr();
00114 
00116    virtual DtInteractionRoMsg* selfRo() const;
00117 
00118 };
00119 
00120 
00121 inline DtInteractionRoMsg* DtInteractionRoMsg::selfRo() const
00122 {
00123    return const_cast<DtInteractionRoMsg*>( this );
00124 }
00125 
00126 #endif
00127 

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)