![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: partnerFederateMsg.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtPartnerFederateMsg_H_ 00013 #define DtPartnerFederateMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netPartnerFederateMsg.h" 00017 00018 enum DtPartnerResponse 00019 { 00020 DtPartnerResponseAccept, 00021 DtPartnerResponseConfirm, 00022 DtPartnerResponseReject, 00023 DtPartnerResponseInvalid 00024 }; 00025 00026 class DtConnectionMgr; 00027 class DtPartnerFederateMsg; 00028 typedef void (*DtPartnerFederateCb)(const DtPartnerFederateMsg& msg, void* usr); 00029 00030 class DT_DLL_LRC DtPartnerFederateMsg : public DtRtiMsg 00031 { 00032 public: 00033 00035 DtPartnerFederateMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00036 00038 DtPartnerFederateMsg( 00039 DtFederateHandle partnerHandle, 00040 DtPartnerResponse response, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 00044 DtPartnerFederateMsg(const DtNetPartnerFederateMsg* netRepMsg, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 00048 virtual ~DtPartnerFederateMsg(); 00049 00051 virtual DtRtiMsg* clone(bool copy = true) const; 00052 00054 virtual void set(DtFederateHandle partnerHandle, DtPartnerResponse response); 00055 00057 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00058 00060 virtual DtFederateHandle partnerFederate() const; 00061 00063 virtual void setPartnerFederate(DtFederateHandle fedHandle); 00064 00066 virtual DtPartnerResponse partnerResponse() const; 00067 00069 virtual void setPartnerResponse(DtPartnerResponse response); 00070 00071 public: 00072 00074 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00075 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00077 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00078 00080 static void addCallback(DtConnectionMgr *conn, 00081 DtPartnerFederateCb cb, void *usr); 00082 static void removeCallback(DtConnectionMgr *conn, 00083 DtPartnerFederateCb cb, void *usr); 00084 00085 protected: 00087 virtual DtNetPartnerFederateMsg* netPartnerFederateMsg(); 00088 virtual const DtNetPartnerFederateMsg* netPartnerFederateMsg() const; 00089 00091 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00092 00094 virtual int minSize() const; 00095 00097 virtual DtPartnerFederateMsg* self() const; 00098 00099 00100 00101 protected: 00102 00103 char* myLabel; 00104 }; 00105 00106 inline DtPartnerFederateMsg* DtPartnerFederateMsg::self() const 00107 { 00108 return const_cast<DtPartnerFederateMsg*>( this ); 00109 } 00110 00111 #endif