![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2006 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: smEnrollmentMsg.h,v $ $Revision: 1.5 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtSmEnrollmentMsg_H_ 00013 #define DtSmEnrollmentMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netRtiMsgHdr.h" 00017 #include "smRegisterMsg.h" 00018 00019 class DtConnectionMgr; 00020 class DtSmEnrollmentMsg; 00021 typedef void (*DtSmEnrollmentMsgCb)(const DtSmEnrollmentMsg& inter, void* usr); 00022 00023 enum DtSmRegisterFlags 00024 { 00025 DtSmRegister, 00026 DtSmUnregister, 00027 DtSmEnrollmentInvalid 00028 }; 00029 00036 class DT_DLL_LRC DtSmEnrollmentMsg : public DtRtiMsg 00037 { 00038 public: 00039 00041 DtSmEnrollmentMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 00043 DtSmEnrollmentMsg(DtFederateHandle federateHandle, int fedexHandle, 00044 DtSmRegisterFlags action, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 00048 DtSmEnrollmentMsg(const DtSmRegisterMsg* netRepMsg, 00049 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00050 00052 virtual ~DtSmEnrollmentMsg(); 00053 00055 virtual DtRtiMsg* clone(bool copy = true) const; 00056 00058 virtual void set(DtFederateHandle federateHandle, int fedexHandle, 00059 DtSmRegisterFlags action); 00060 00062 void setActionFlag( const DtSmRegisterFlags action ); 00063 const DtSmRegisterFlags actionFlag() const; 00064 00066 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00067 00068 public: 00069 00071 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00072 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00073 00075 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00076 00078 static void addCallback(DtConnectionMgr* conn, 00079 DtSmEnrollmentMsgCb cb, void* usr); 00080 static void removeCallback(DtConnectionMgr* conn, 00081 DtSmEnrollmentMsgCb cb, void* usr); 00082 00083 protected: 00084 00086 virtual DtSmRegisterMsg* netSmRegisterMsg(); 00087 virtual const DtSmRegisterMsg* netSmRegisterMsg() const; 00088 00090 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00091 00093 virtual int minSize() const; 00094 00096 virtual DtSmEnrollmentMsg* self() const; 00097 }; 00098 00099 00100 inline DtSmEnrollmentMsg* DtSmEnrollmentMsg::self() const 00101 { 00102 return const_cast<DtSmEnrollmentMsg*>( this ); 00103 } 00104 00105 #endif //! DtSmEnrollmentMsg_H_ 00106