![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2010 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: resignDirectiveMsg.h,v $ $Revision: 1.0 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtResignDirectiveMsg_H_ 00013 #define DtResignDirectiveMsg_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "rtiMsg.h" 00017 #include "resignMsg.h" 00018 #include "netResignDirectiveMsg.h" 00019 00020 class DtConnectionMgr; 00021 class DtResignDirectiveMsg; 00022 typedef void (*DtResignDirectiveCb)(const DtResignDirectiveMsg& msg, void* usr); 00023 00024 class DT_DLL_LRC DtResignDirectiveMsg : public DtRtiMsg 00025 { 00026 public: 00027 00029 DtResignDirectiveMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00030 00032 DtResignDirectiveMsg( 00033 DtFederateHandle sendingFederate, 00034 DtResignAction resignDirective, 00035 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00036 00038 DtResignDirectiveMsg(const DtNetResignDirectiveMsg* netRepMsg, 00039 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00040 00042 virtual ~DtResignDirectiveMsg(); 00043 00045 virtual DtRtiMsg* clone(bool copy = true) const; 00046 00048 virtual void set( 00049 DtFederateHandle sendingFederate, 00050 DtResignAction resignDirective ); 00051 00053 virtual void setSendingFederate(DtFederateHandle handle); 00054 virtual DtFederateHandle sendingFederate() const; 00055 00057 virtual void setResignDirective( DtResignAction directive ); 00058 virtual DtResignAction resignDirective() const; 00059 00061 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00062 00063 public: 00064 00066 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00067 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00068 00070 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00071 00073 static void addCallback(DtConnectionMgr *conn, 00074 DtResignDirectiveCb cb, void *usr); 00075 static void removeCallback(DtConnectionMgr *conn, 00076 DtResignDirectiveCb cb, void *usr); 00077 00078 protected: 00079 00081 virtual DtNetResignDirectiveMsg* netResignDirectiveMsg(); 00082 virtual const DtNetResignDirectiveMsg* netResignDirectiveMsg() const; 00083 00085 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00086 00088 virtual int minSize() const; 00089 00091 virtual DtResignDirectiveMsg* self() const; 00092 }; 00093 00094 00095 inline DtResignDirectiveMsg* DtResignDirectiveMsg::self() const 00096 { 00097 return const_cast<DtResignDirectiveMsg*>( this ); 00098 } 00099 00100 #endif