![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: unsubIntMsg.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtUnsubInterMsg_H_ 00013 #define DtUnsubInterMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netSubIntMsg.h" 00017 00018 typedef DtNetSubInterMsg DtNetUnsubInterMsg; 00019 class DtConnectionMgr; 00020 class DtUnsubInterMsg; 00021 typedef void (*DtUnsubInterCb)(const DtUnsubInterMsg& inter, void* usr); 00022 00023 class DT_DLL_LRC DtUnsubInterMsg : public DtRtiMsg 00024 { 00025 public: 00026 00028 DtUnsubInterMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00029 00030 DtUnsubInterMsg( 00031 DtInteractionClassHandle theInter, 00032 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00033 00035 DtUnsubInterMsg(const DtNetUnsubInterMsg* netRepMsg, 00036 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00037 00039 virtual ~DtUnsubInterMsg(); 00040 00042 virtual DtRtiMsg* clone(bool copy = true) const; 00043 00045 virtual void set(DtInteractionClassHandle theInter, bool forSmartForwarding); 00046 00048 virtual void setHandle(DtInteractionClassHandle hand); 00049 virtual DtInteractionClassHandle handle() const; 00050 00053 virtual void setForSmartForwarding(bool value); 00054 virtual bool isForSmartForwarding() const; 00055 00057 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00058 00059 public: 00060 00062 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00063 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00064 00066 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00067 00069 static void addCallback(DtConnectionMgr* conn, 00070 DtUnsubInterCb cb, void* usr); 00071 static void removeCallback(DtConnectionMgr* conn, 00072 DtUnsubInterCb cb, void* usr); 00073 00074 protected: 00075 00077 virtual DtNetUnsubInterMsg* netUnsubInterMsg(); 00078 virtual const DtNetUnsubInterMsg* netUnsubInterMsg() const; 00079 00081 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00082 00084 virtual int minSize() const; 00085 00087 virtual DtUnsubInterMsg* self() const; 00088 }; 00089 00090 00091 inline DtUnsubInterMsg* DtUnsubInterMsg::self() const 00092 { 00093 return const_cast<DtUnsubInterMsg*>( this ); 00094 } 00095 00096 #endif 00097