MAK RTIspy API Documentation for HLA 1.3
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
DtPartnerMgr Class Reference

Instances of DtPartnerMgr process partner messages to establish federate partners in an unlicensed federation execution. More...

+ Collaboration diagram for DtPartnerMgr:

Public Member Functions

 DtPartnerMgr (DtConnectionMgr *connectMgr)
 Constructor.
 ~DtPartnerMgr ()
 Destructor.
virtual void joinFederationExecution (const char *federateType, const char *executionName, const char *federateName, unsigned long flags)
 Start up partner management.
virtual void resign ()
 Shut down partner management.
virtual bool acceptMessage (const DtRtiMsg &msg)
 Return boolean: message should be accepted?

Protected Member Functions

virtual void sendJoinMessage (MAKRti::DtString federateType, MAKRti::DtString fedexName, MAKRti::DtString federateName)
 Send a lightweight join message.
virtual void sendPartnerMessage (DtFederateHandle partnerFederate, DtPartnerResponse response)
 Send a partner response message.
virtual void processOtherMessage (DtRtiMsg const &msg)
 Process all other messages.
virtual void processResignMessage (const DtResignMsg &msg)
 Process resign message.
virtual void processPartnerMessage (const DtPartnerFederateMsg &msg)
 Partner federate message callback.
virtual void processPartnerAccept (const DtPartnerFederateMsg &msg)
 Process partner federate message callback for accept response.
virtual void processPartnerConfirm (const DtPartnerFederateMsg &msg)
 Process partner federate message callback for confirm response.
virtual void processPartnerReject (const DtPartnerFederateMsg &msg)
 Process partner federate message callback for reject response.
virtual bool partnerSlotAvailable () const
 Return boolean: Is a partner slot available?
virtual bool waitingForConfirm () const
 Return boolean: Is there any partner that needs to be confirmed?
virtual bool isPartner (DtFederateHandle federate) const
 Return boolean: Is the given federate a partner?
virtual bool isPending (DtFederateHandle federate) const
 Return boolean: Is the given federate a pending partner? (false if not a partner or partner but confirmed)
virtual bool isConfirmed (DtFederateHandle federate) const
 Return boolean: Is the given federate a confirmed partner? (false if not a partner or partner but pending)
virtual void acceptPartner (DtFederateHandle federate, bool confirmed=false)
 Accept the given federate as a partner. Partner may either be pending or confirmed.
virtual void confirmPartner (DtFederateHandle federate)
 Change the status of a partner to confirmed.
virtual void removePartner (DtFederateHandle federate)
 Remove the given federate as a partner.
virtual void removePendingPartner (DtFederateHandle federate)
 Remove the given federate as a pending partner.
virtual void removeConfirmedPartner (DtFederateHandle federate)
 Remove the given federate as a confirmed partner.
virtual bool isMe (DtFederateHandle federate) const
 Return boolean: given federate handle is mine.
virtual DtFederateHandle federateHandle () const
 Return federate handle.

Protected Attributes

DtConnectionMgrmyConnectMgr
 Access to connection manager.
bool myIsJoined
 Join status.
DtPartnerState myPartnerState
 Partnering acceptance/confirm state.
std::vector< DtFederateHandlemyPartners
 List of partners.
std::vector< DtFederateHandlemyPendingPartners
 List of pending partners.
std::vector< DtFederateHandlemyConfirmedPartners
 List of confirmed partners.
DtFederateHandleStdSet myFilteredFederates
 List of license opposites that are being filtered.

Private Member Functions

 DtPartnerMgr (DtPartnerMgr const &)
 Copy Constructor not implemented – Copy Not Allowed!
DtPartnerMgroperator= (DtPartnerMgr const &)
 Assignment not implemented – Assignment Not Allowed!

Detailed Description

Instances of DtPartnerMgr process partner messages to establish federate partners in an unlicensed federation execution.

Constructor & Destructor Documentation

DtPartnerMgr::DtPartnerMgr ( DtConnectionMgr connectMgr)

Constructor.

References DtMAX_PARTNERS, and DtUseFedObservers.

DtPartnerMgr::~DtPartnerMgr ( )

Destructor.

DtPartnerMgr::DtPartnerMgr ( DtPartnerMgr const &  )
private

Copy Constructor not implemented – Copy Not Allowed!

Member Function Documentation

bool DtPartnerMgr::acceptMessage ( const DtRtiMsg msg)
virtual
void DtPartnerMgr::acceptPartner ( DtFederateHandle  federate,
bool  confirmed = false 
)
protectedvirtual

Accept the given federate as a partner. Partner may either be pending or confirmed.

References DtUseFedObservers, isConfirmed(), isPartner(), isPending(), myConfirmedPartners, myPartners, myPendingPartners, removeConfirmedPartner(), and removePendingPartner().

Referenced by confirmPartner(), processOtherMessage(), and processPartnerAccept().

void DtPartnerMgr::confirmPartner ( DtFederateHandle  federate)
protectedvirtual

Change the status of a partner to confirmed.

References acceptPartner(), isConfirmed(), and isPending().

Referenced by processPartnerConfirm().

DtFederateHandle DtPartnerMgr::federateHandle ( ) const
protectedvirtual

Return federate handle.

References DtConnectionMgr::fedHandle(), and myConnectMgr.

Referenced by isMe().

bool DtPartnerMgr::isConfirmed ( DtFederateHandle  federate) const
protectedvirtual

Return boolean: Is the given federate a confirmed partner? (false if not a partner or partner but pending)

References myConfirmedPartners.

Referenced by acceptPartner(), and confirmPartner().

bool DtPartnerMgr::isMe ( DtFederateHandle  federate) const
protectedvirtual

Return boolean: given federate handle is mine.

References federateHandle().

Referenced by processOtherMessage(), processPartnerAccept(), processPartnerConfirm(), processPartnerMessage(), and processPartnerReject().

bool DtPartnerMgr::isPartner ( DtFederateHandle  federate) const
protectedvirtual

Return boolean: Is the given federate a partner?

References myPartners.

Referenced by acceptMessage(), acceptPartner(), processOtherMessage(), processPartnerAccept(), processPartnerConfirm(), and processResignMessage().

bool DtPartnerMgr::isPending ( DtFederateHandle  federate) const
protectedvirtual

Return boolean: Is the given federate a pending partner? (false if not a partner or partner but confirmed)

References myPendingPartners.

Referenced by acceptPartner(), and confirmPartner().

void DtPartnerMgr::joinFederationExecution ( const char *  federateType,
const char *  executionName,
const char *  federateName,
unsigned long  flags 
)
virtual
DtPartnerMgr& DtPartnerMgr::operator= ( DtPartnerMgr const &  )
private

Assignment not implemented – Assignment Not Allowed!

bool DtPartnerMgr::partnerSlotAvailable ( ) const
protectedvirtual

Return boolean: Is a partner slot available?

References DtUseFedObservers, and myPartners.

Referenced by processOtherMessage(), processPartnerAccept(), processPartnerConfirm(), and processResignMessage().

void DtPartnerMgr::processOtherMessage ( DtRtiMsg const &  msg)
protectedvirtual
void DtPartnerMgr::processPartnerAccept ( const DtPartnerFederateMsg msg)
protectedvirtual
void DtPartnerMgr::processPartnerConfirm ( const DtPartnerFederateMsg msg)
protectedvirtual
void DtPartnerMgr::processPartnerMessage ( const DtPartnerFederateMsg msg)
protectedvirtual
void DtPartnerMgr::processPartnerReject ( const DtPartnerFederateMsg msg)
protectedvirtual
void DtPartnerMgr::processResignMessage ( const DtResignMsg msg)
protectedvirtual
void DtPartnerMgr::removeConfirmedPartner ( DtFederateHandle  federate)
protectedvirtual

Remove the given federate as a confirmed partner.

noop if federate was not confirmed.

References myConfirmedPartners.

Referenced by acceptPartner(), and removePartner().

void DtPartnerMgr::removePartner ( DtFederateHandle  federate)
protectedvirtual

Remove the given federate as a partner.

noop if federate was not partner.

References myPartners, removeConfirmedPartner(), and removePendingPartner().

Referenced by processResignMessage().

void DtPartnerMgr::removePendingPartner ( DtFederateHandle  federate)
protectedvirtual

Remove the given federate as a pending partner.

noop if federate was not pending.

References myPendingPartners.

Referenced by acceptPartner(), and removePartner().

void DtPartnerMgr::resign ( )
virtual
void DtPartnerMgr::sendJoinMessage ( MAKRti::DtString  federateType,
MAKRti::DtString  fedexName,
MAKRti::DtString  federateName 
)
protectedvirtual
void DtPartnerMgr::sendPartnerMessage ( DtFederateHandle  partnerFederate,
DtPartnerResponse  response 
)
protectedvirtual
bool DtPartnerMgr::waitingForConfirm ( ) const
protectedvirtual

Return boolean: Is there any partner that needs to be confirmed?

References DtUseFedObservers, and myConfirmedPartners.

Referenced by processPartnerAccept(), and processPartnerConfirm().

Member Data Documentation

std::vector<DtFederateHandle> DtPartnerMgr::myConfirmedPartners
protected

List of confirmed partners.

Referenced by acceptPartner(), isConfirmed(), removeConfirmedPartner(), resign(), and waitingForConfirm().

DtConnectionMgr* DtPartnerMgr::myConnectMgr
protected
DtFederateHandleStdSet DtPartnerMgr::myFilteredFederates
protected

List of license opposites that are being filtered.

Referenced by acceptMessage().

bool DtPartnerMgr::myIsJoined
protected

Join status.

Referenced by acceptMessage(), joinFederationExecution(), and resign().

std::vector<DtFederateHandle> DtPartnerMgr::myPartners
protected
DtPartnerState DtPartnerMgr::myPartnerState
protected
std::vector<DtFederateHandle> DtPartnerMgr::myPendingPartners
protected

List of pending partners.

Referenced by acceptPartner(), isPending(), removePendingPartner(), and resign().


The documentation for this class was generated from the following files:

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)