![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: desgFedMsg.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtDesignatedFederateMsg_H_ 00013 #define DtDesignatedFederateMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netDesgFedMsg.h" 00017 00018 class DtConnectionMgr; 00019 class DtDesignatedFederateMsg; 00020 typedef void (*DtDesignatedFederateCb)(const DtDesignatedFederateMsg& msg, void* usr); 00021 00022 class DT_DLL_LRC DtDesignatedFederateMsg : public DtRtiMsg 00023 { 00024 public: 00025 00027 DtDesignatedFederateMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00028 00030 DtDesignatedFederateMsg( 00031 DtFederateHandle fedHandle, 00032 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00033 00035 DtDesignatedFederateMsg(const DtNetDesignatedFederateMsg* netRepMsg, 00036 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00037 00039 virtual ~DtDesignatedFederateMsg(); 00040 00042 virtual DtRtiMsg* clone(bool copy = true) const; 00043 00045 virtual void set(DtFederateHandle fedHandle); 00046 00048 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00049 00051 virtual DtFederateHandle designatedFederate() const; 00052 virtual void setDesignatedFederate(DtFederateHandle fedHandle); 00053 00054 public: 00055 00057 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00058 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00060 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00061 00063 static void addCallback(DtConnectionMgr *conn, 00064 DtDesignatedFederateCb cb, void *usr); 00065 static void removeCallback(DtConnectionMgr *conn, 00066 DtDesignatedFederateCb cb, void *usr); 00067 00068 protected: 00070 virtual DtNetDesignatedFederateMsg* netDesignatedFederateMsg(); 00071 virtual const DtNetDesignatedFederateMsg* netDesignatedFederateMsg() const; 00072 00074 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00075 00077 virtual int minSize() const; 00078 00080 virtual DtDesignatedFederateMsg* self() const; 00081 00082 00083 00084 protected: 00085 00086 char* myLabel; 00087 }; 00088 00089 inline DtDesignatedFederateMsg* DtDesignatedFederateMsg::self() const 00090 { 00091 return const_cast<DtDesignatedFederateMsg*>( this ); 00092 } 00093 00094 #endif