![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: subInterMsg.h,v $ $Revision: 1.15 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtSubInterMsg_H_ 00013 #define DtSubInterMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netSubIntMsg.h" 00017 00018 class DtConnectionMgr; 00019 class DtSubInterMsg; 00020 typedef void (*DtSubInterCb)(const DtSubInterMsg& inter, void* usr); 00021 00022 class DT_DLL_LRC DtSubInterMsg : public DtRtiMsg 00023 { 00024 public: 00025 00027 DtSubInterMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00028 00029 DtSubInterMsg( 00030 DtInteractionClassHandle theInter, bool isPassive, 00031 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00032 00034 DtSubInterMsg(const DtNetSubInterMsg* netRepMsg, 00035 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00036 00038 virtual ~DtSubInterMsg(); 00039 00041 virtual DtRtiMsg* clone(bool copy = true) const; 00042 00044 virtual void set( DtInteractionClassHandle theInter, bool isPassive ); 00045 00047 virtual void setHandle(DtInteractionClassHandle hand); 00048 virtual DtInteractionClassHandle handle() const; 00049 00051 virtual void setPassive( bool isPassive ); 00052 virtual bool isPassive() const; 00053 00055 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00056 00057 public: 00058 00060 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00061 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00062 00064 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00065 00067 static void addCallback(DtConnectionMgr* conn, 00068 DtSubInterCb cb, void* usr); 00069 static void removeCallback(DtConnectionMgr* conn, 00070 DtSubInterCb cb, void* usr); 00071 00072 protected: 00073 00075 virtual DtNetSubInterMsg* netSubInterMsg(); 00076 virtual const DtNetSubInterMsg* netSubInterMsg() const; 00077 00079 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00080 00082 virtual int minSize() const; 00083 00085 virtual DtSubInterMsg* self() const; 00086 }; 00087 00088 00089 inline DtSubInterMsg* DtSubInterMsg::self() const 00090 { 00091 return const_cast<DtSubInterMsg*>( this ); 00092 } 00093 00094 #endif 00095