MAK RTIspy API Documentation for HLA 1516
partnerMgr.h
Go to the documentation of this file.
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_

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)