![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: partnerMgr.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef partnerMgr_H_ 00010 #define partnerMgr_H_ 00011 00012 #ifndef DtUNDOCUMENTED 00013 00016 00017 #include "rtiMsConfig.h" 00018 #include "partnerFederateMsg.h" 00019 00020 class DtResignMsg; 00021 class DtConnectionMgr; 00022 class DtRtiMsg; 00023 00024 enum DtPartnerState 00025 { 00026 DtPartnerAccepting, 00027 DtPartnerPendingConfirm, 00028 DtPartnerConfirmed 00029 }; 00030 00034 class DT_DLL_LRC DtPartnerMgr 00035 { 00036 public: 00037 00039 DtPartnerMgr(DtConnectionMgr* connectMgr); 00040 00042 ~DtPartnerMgr(); 00043 00044 private: 00045 00047 DtPartnerMgr(DtPartnerMgr const& ); 00048 00050 DtPartnerMgr& operator= (DtPartnerMgr const& ); 00051 00052 public: 00053 00055 virtual void joinFederationExecution( 00056 const char* federateType, 00057 const char* executionName, 00058 const char* federateName, 00059 unsigned long flags); 00060 00062 virtual void resign(); 00063 00065 virtual bool acceptMessage( const DtRtiMsg& msg ); 00066 00067 protected: 00068 00070 virtual void sendJoinMessage(MAKRti::DtString federateType, 00071 MAKRti::DtString fedexName, MAKRti::DtString federateName); 00072 00074 virtual void sendPartnerMessage(DtFederateHandle partnerFederate, DtPartnerResponse response); 00075 00077 virtual void processOtherMessage(DtRtiMsg const& msg); 00078 00080 virtual void processResignMessage(const DtResignMsg& msg); 00081 00083 virtual void processPartnerMessage(const DtPartnerFederateMsg& msg); 00084 00086 virtual void processPartnerAccept(const DtPartnerFederateMsg& msg); 00087 00089 virtual void processPartnerConfirm(const DtPartnerFederateMsg& msg); 00090 00092 virtual void processPartnerReject(const DtPartnerFederateMsg& msg); 00093 00095 virtual bool partnerSlotAvailable() const; 00096 00098 virtual bool waitingForConfirm() const; 00099 00101 virtual bool isPartner(DtFederateHandle federate) const; 00102 00105 virtual bool isPending(DtFederateHandle federate) const; 00106 00109 virtual bool isConfirmed(DtFederateHandle federate) const; 00110 00112 virtual void acceptPartner(DtFederateHandle federate, bool confirmed = false); 00113 00115 virtual void confirmPartner(DtFederateHandle federate); 00116 00119 virtual void removePartner(DtFederateHandle federate); 00120 00123 virtual void removePendingPartner(DtFederateHandle federate); 00124 00127 virtual void removeConfirmedPartner(DtFederateHandle federate); 00128 00130 virtual bool isMe(DtFederateHandle federate) const; 00131 00133 virtual DtFederateHandle federateHandle() const; 00134 00135 protected: 00136 00138 DtConnectionMgr* myConnectMgr; 00139 00141 bool myIsJoined; 00142 00144 DtPartnerState myPartnerState; 00145 00147 std::vector<DtFederateHandle> myPartners; 00148 00150 std::vector<DtFederateHandle> myPendingPartners; 00151 00153 std::vector<DtFederateHandle> myConfirmedPartners; 00154 00156 DtFederateHandleStdSet myFilteredFederates; 00157 }; 00158 00159 #endif // DtUNDOCUMENTED 00160 #endif // partnerMgr_H_