Federation Class Reference

#include <Federation.hh>

List of all members.

Public Member Functions

 Federation (const char *, Handle, SocketServer &, AuditFile &, const char *, int theVerboseLevel) throw (CouldNotOpenFED, ErrorReadingFED, MemoryExhausted, SecurityError, RTIinternalError)
 Allocates memory the Name's storage, and read its FED file to store the result in RootObj.
 ~Federation ()
int getNbFederates () const
 Returns the number of federates in federation.
int getNbRegulators () const
 Returns the number of federates regulator.
bool isSynchronizing () const
 Return true if federation is being synchronized.
Handle getHandle () const
 Returns the federation handle.
const char * getName () const
 Returns the federation name given in 'Create Federation Execution'.
const char * getFEDid () const
 Returns the FEDid name given in 'Create Federation Execution'.
FederateHandle add (const char *theName, SocketTCP *theTCPLink) throw (FederateAlreadyExecutionMember, MemoryExhausted, RTIinternalError)
bool empty () const throw (FederatesCurrentlyJoined)
 Return true if no federates are in federation.
bool check (FederateHandle theHandle) const throw (FederateNotExecutionMember)
 Return true if federate is in federation.
void kill (FederateHandle theFederate) throw ()
 Make a federate resign the federation.
void remove (FederateHandle theHandle) throw (FederateOwnsAttributes, FederateNotExecutionMember)
 Remove a federate.
void addRegulator (FederateHandle theHandle, FederationTime theTime) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
 Add the Federate to the Regulators List.
void updateRegulator (FederateHandle theHandle, FederationTime theTime) throw (FederateNotExecutionMember, RTIinternalError)
 Update the current time of a regulator federate.
void removeRegulator (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
 Remove the Federate from the Regulators' list.
void addConstrained (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void removeConstrained (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
 Set Federate's IsConstrained to false.
void registerSynchronization (FederateHandle the_federate, const char *the_label, const char *the_tag) throw (FederateNotExecutionMember, FederationAlreadyPaused, SaveInProgress, RestoreInProgress, RTIinternalError)
 Add a new synchronization point to federation.
void registerSynchronization (FederateHandle the_federate, const char *the_label, const char *the_tag, unsigned short federate_setSize, std::vector< FederateHandle > &federate_set) throw (FederateNotExecutionMember, FederationAlreadyPaused, SaveInProgress, RestoreInProgress, RTIinternalError)
 Add a new synchronization point (with federates set) to federation.
void unregisterSynchronization (FederateHandle theFederate, const char *theLabel) throw (FederateNotExecutionMember, FederationNotPaused, SaveInProgress, RestoreInProgress, RTIinternalError)
 unregisterSynchronization.
void broadcastSynchronization (FederateHandle federate, const char *label, const char *tag) throw (RTIinternalError)
void broadcastSynchronization (FederateHandle federate, const char *label, const char *tag, unsigned short federate_setSize, std::vector< FederateHandle > &federate_set) throw (RTIinternalError)
void requestFederationSave (FederateHandle, const char *, FederationTime) throw (FederateNotExecutionMember, SaveInProgress)
 Request a federation save with time.
void requestFederationSave (FederateHandle, const char *) throw (FederateNotExecutionMember, SaveInProgress)
 Request a federation save without time.
void federateSaveBegun (FederateHandle) throw (FederateNotExecutionMember)
void federateSaveStatus (FederateHandle, bool) throw (FederateNotExecutionMember)
 Informs that a federate returns a save end message (with success or not!).
void requestFederationRestore (FederateHandle the_federate, const char *the_label) throw (FederateNotExecutionMember)
 Informs that a federate is requesting a save.
void federateRestoreStatus (FederateHandle the_federate, bool the_status) throw (FederateNotExecutionMember)
 Informs that a federate has ended a restore.
void deleteObject (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, FederationTime theTime, const char *theUserTag) throw (FederateNotExecutionMember, DeletePrivilegeNotHeld, ObjectNotKnown, SaveInProgress, RestoreInProgress, InvalidFederationTime, RTIinternalError)
 Removes an object instance from federation.
void deleteObject (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, const char *theUserTag) throw (FederateNotExecutionMember, DeletePrivilegeNotHeld, ObjectNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)
 Removes an object instance from federation.
void publishObject (FederateHandle theFederateHandle, ObjectClassHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize, bool PubOrUnpub) throw (ObjectClassNotDefined, AttributeNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)
ObjectHandle registerObject (FederateHandle theFederateHandle, ObjectClassHandle theClass, const char *theName) throw (FederateNotExecutionMember, FederateNotPublishing, ObjectAlreadyRegistered, ObjectClassNotDefined, ObjectClassNotPublished, SaveInProgress, RestoreInProgress, RTIinternalError)
 Adds a new object instance to federation.
FederateHandle requestObjectOwner (FederateHandle theFederateHandle, ObjectHandle theObject, std::vector< AttributeHandle > &theAttributeList, UShort theListSize) throw (ObjectNotKnown)
void subscribeObject (FederateHandle theFederateHandle, ObjectClassHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize) throw (ObjectClassNotDefined, AttributeNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)
 Subscribes attributes to an object class.
void updateAttributeValues (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, std::vector< AttributeValue_t > &theValueList, UShort theListSize, FederationTime theTime, const char *theTag) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, SaveInProgress, RestoreInProgress, RTIinternalError)
void updateAttributeValues (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, std::vector< AttributeValue_t > &theValueList, UShort theListSize, const char *theTag) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, SaveInProgress, RestoreInProgress, RTIinternalError)
void broadcastInteraction (FederateHandle theFederateHandle, InteractionClassHandle theInteractionHandle, std::vector< ParameterHandle > &theParameterList, std::vector< ParameterValue_t > &theValueList, UShort theListSize, FederationTime theTime, RegionHandle, const char *theTag) throw (FederateNotExecutionMember, FederateNotPublishing, InteractionClassNotDefined, InteractionParameterNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)
 broadcastInteraction with time
void broadcastInteraction (FederateHandle theFederateHandle, InteractionClassHandle theInteractionHandle, std::vector< ParameterHandle > &theParameterList, std::vector< ParameterValue_t > &theValueList, UShort theListSize, RegionHandle, const char *theTag) throw (FederateNotExecutionMember, FederateNotPublishing, InteractionClassNotDefined, InteractionParameterNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)
 broadcastInteraction without time
void publishInteraction (FederateHandle theFederateHandle, InteractionClassHandle theInteractionHandle, bool PubOrUnpub) throw (InteractionClassNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)
void subscribeInteraction (FederateHandle theFederateHandle, InteractionClassHandle theInteractionHandle, bool SubOrUnsub) throw (InteractionClassNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)
bool isOwner (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, AttributeHandle theAttribute) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)
void queryAttributeOwnership (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, AttributeHandle theAttribute) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)
void negotiateDivestiture (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize, const char *theTag) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, AttributeAlreadyBeingDivested, SaveInProgress, RestoreInProgress, RTIinternalError)
void acquireIfAvailable (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize) throw (ObjectNotKnown, ObjectClassNotPublished, AttributeNotDefined, AttributeNotPublished, FederateOwnsAttributes, AttributeAlreadyBeingAcquired, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void divest (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize) throw (ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void acquire (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize, const char *theTag) throw (ObjectNotKnown, ObjectClassNotPublished, AttributeNotDefined, AttributeNotPublished, FederateOwnsAttributes, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void cancelDivestiture (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize) throw (ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, AttributeDivestitureWasNotRequested, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
AttributeHandleSetrespondRelease (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize) throw (ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, FederateWasNotAskedToReleaseAttribute, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void cancelAcquisition (FederateHandle theFederateHandle, ObjectHandle theObjectHandle, std::vector< AttributeHandle > &theAttributeList, UShort theListSize) throw (ObjectNotKnown, AttributeNotDefined, AttributeAlreadyOwned, AttributeAcquisitionWasNotRequested, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
long createRegion (FederateHandle, SpaceHandle, long) throw (SpaceNotDefined, InvalidExtents, SaveInProgress, RestoreInProgress, RTIinternalError)
void modifyRegion (FederateHandle, RegionHandle, const std::vector< Extent > &) throw (RegionNotKnown, InvalidExtents, SaveInProgress, RestoreInProgress, RTIinternalError)
void deleteRegion (FederateHandle, long) throw (RegionNotKnown, RegionInUse, SaveInProgress, RestoreInProgress, RTIinternalError)
 deleteRegion
void associateRegion (FederateHandle, ObjectHandle, RegionHandle, unsigned short, std::vector< AttributeHandle > &) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)
 associateRegion
void unassociateRegion (FederateHandle, ObjectHandle, RegionHandle) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)
 unassociateRegion
void subscribeAttributesWR (FederateHandle, ObjectClassHandle, RegionHandle, unsigned short, std::vector< AttributeHandle > &) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)
 subscribeAttributesWR
void unsubscribeAttributesWR (FederateHandle, ObjectClassHandle, RegionHandle) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)
 unsubscribeAttributesWR
void subscribeInteractionWR (FederateHandle, InteractionClassHandle, RegionHandle) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)
void unsubscribeInteractionWR (FederateHandle, InteractionClassHandle, RegionHandle) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)
ObjectHandle registerObjectWithRegion (FederateHandle, ObjectClassHandle, const char *, RegionHandle, int, std::vector< AttributeHandle > &) throw (ObjectClassNotDefined, ObjectClassNotPublished, AttributeNotDefined, AttributeNotPublished, RegionNotKnown, InvalidRegionContext, ObjectAlreadyRegistered, SaveInProgress, RestoreInProgress, RTIinternalError)
void setClassRelevanceAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void unsetClassRelevanceAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void setInteractionRelevanceAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void unsetInteractionRelevanceAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void setAttributeRelevanceAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void unsetAttributeRelevanceAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void setAttributeScopeAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)
void unsetAttributeScopeAdvisorySwitch (FederateHandle theHandle) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

Private Types

typedef std::vector< FederateFederateList

Private Member Functions

bool saveXmlData ()
bool restoreXmlData ()
void broadcastAnyMessage (NetworkMessage *msg, FederateHandle Except)
 Broadcast 'msg' to all Federate except the specified one.
void broadcastSomeMessage (NetworkMessage *msg, FederateHandle Except, std::vector< FederateHandle > &fede_array, int nbfed)
 Broadcast 'msg' to some Federates except the specified one.
FederategetFederate (const char *theName) throw (FederateNotExecutionMember)
 Return the Federate whose Name is theName, if found.
FederategetFederate (FederateHandle theHandle) throw (FederateNotExecutionMember)
 Return the Federate whose Handle is theHandle, if found.

Private Attributes

Handle handle
std::string name
std::string FEDid
std::map< const char *, const
char * > 
synchronizationLabels
 Labels and Tags not on synchronization.
HandleManager< FederateHandlefederateHandles
HandleManager< ObjectHandleobjectHandles
SecurityServerserver
RootObjectroot
LBTS regulators
FederateList federates
bool saveInProgress
bool restoreInProgress
bool saveStatus
 True if saving was correctly done, false otherwise.
bool restoreStatus
 True if restoring was correctly done.
int verboseLevel
std::string saveLabel
 The label associated with the save request.
MessageBuffer NM_msgBufSend


Detailed Description

Definition at line 54 of file Federation.hh.


Member Typedef Documentation

typedef std::vector<Federate> FederateList [private]

Definition at line 659 of file Federation.hh.


Constructor & Destructor Documentation

Federation ( const char *  federation_name,
Handle  federation_handle,
SocketServer socket_server,
AuditFile audit_server,
const char *  FEDid_name,
int  theVerboseLevel 
) throw (CouldNotOpenFED, ErrorReadingFED, MemoryExhausted, SecurityError, RTIinternalError)

Allocates memory the Name's storage, and read its FED file to store the result in RootObj.

with FEDERATION_USES_MULTICAST not defined

Parameters:
federation_name 
federation_handle 
socket_server 
audit_server 
FEDid_name i.e. FED file name (may be a .fed or a .xml file)

Definition at line 107 of file Federation.cc.

References certi::fedparser::build(), certi::rtig::D, XmlParser::exists(), certi::rtig::G, PrettyDebug::Out(), XmlParser::parse(), pdExcept, pdGendoc, pdInit, pdTrace, STAT_FUNCTION, and STAT_STRUCT.

Here is the call graph for this function:

~Federation (  ) 

Definition at line 354 of file Federation.cc.

References certi::rtig::D, Federation::handle, PrettyDebug::Out(), pdInit, Federation::root, and Federation::server.

Here is the call graph for this function:


Member Function Documentation

bool saveXmlData (  )  [private]

bool restoreXmlData (  )  [private]

Definition at line 2416 of file Federation.cc.

References Federation::federates, and Federation::name.

Referenced by Federation::requestFederationRestore().

int getNbFederates (  )  const

Returns the number of federates in federation.

Definition at line 378 of file Federation.cc.

References Federation::federates.

Referenced by FederationsList::info().

int getNbRegulators (  )  const

Returns the number of federates regulator.

Definition at line 410 of file Federation.cc.

References Federation::regulators, and LBTS::size().

Referenced by FederationsList::info().

Here is the call graph for this function:

bool isSynchronizing (  )  const

Return true if federation is being synchronized.

Definition at line 386 of file Federation.cc.

References Federation::synchronizationLabels.

Referenced by Federation::add(), and FederationsList::info().

Handle getHandle (  )  const

Returns the federation handle.

Definition at line 394 of file Federation.cc.

References Federation::handle.

const char * getName (  )  const

Returns the federation name given in 'Create Federation Execution'.

Definition at line 402 of file Federation.cc.

References Federation::name.

Referenced by Federation::getFederate().

const char * getFEDid (  )  const

Returns the FEDid name given in 'Create Federation Execution'.

Definition at line 418 of file Federation.cc.

References Federation::FEDid.

Referenced by FederationsList::info().

FederateHandle add ( const char *  federate_name,
SocketTCP tcp_link 
) throw (FederateAlreadyExecutionMember, MemoryExhausted, RTIinternalError)

bool empty (  )  const throw (FederatesCurrentlyJoined)

Return true if no federates are in federation.

Return true if there are no Federates left in the Federation, else throw FederatesCurrentlyJoined.

Definition at line 1448 of file Federation.cc.

References Federation::federates.

Referenced by FederationsList::destroyFederation().

bool check ( FederateHandle  federate_handle  )  const throw (FederateNotExecutionMember)

void kill ( FederateHandle  federate  )  throw ()

Make a federate resign the federation.

This function tries to remove all references to this federate in the federation. To be used when a Federate is supposed to have crashed.

Parameters:
federate Handle of the federate to kill

Definition at line 1481 of file Federation.cc.

References certi::rtig::D, certi::fedparser::federate, RootObject::killFederate(), PrettyDebug::Out(), pdInit, pdTrace, Federation::removeConstrained(), Federation::removeRegulator(), and Federation::root.

Referenced by FederationsList::killFederate().

Here is the call graph for this function:

void remove ( FederateHandle  federate_handle  )  throw (FederateOwnsAttributes, FederateNotExecutionMember)

Remove a federate.

Parameters:
federate_handle Handle of the federate to remove.
Bug:
Currently does not check if Federate owns attributes. The Federate Object is deleted.

Definition at line 1606 of file Federation.cc.

References certi::rtig::D, Federation::federateHandles, Federation::federates, Federation::handle, PrettyDebug::Out(), pdExcept, and pdInit.

Referenced by FederationsList::remove().

Here is the call graph for this function:

void addRegulator ( FederateHandle  federate_handle,
FederationTime  time 
) throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void updateRegulator ( FederateHandle  theHandle,
FederationTime  theTime 
) throw (FederateNotExecutionMember, RTIinternalError)

void removeRegulator ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void addConstrained ( FederateHandle  federate_handle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

FIXME: name/ merge with removeConstrained.

Definition at line 500 of file Federation.cc.

References certi::rtig::D, certi::fedparser::federate, Federation::getFederate(), Federation::handle, Federate::isConstrained(), PrettyDebug::Out(), pdExcept, pdTerm, and Federate::setConstrained().

Referenced by FederationsList::addConstrained().

Here is the call graph for this function:

void removeConstrained ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

Set Federate's IsConstrained to false.

Definition at line 1629 of file Federation.cc.

References certi::rtig::D, certi::fedparser::federate, Federation::getFederate(), Federation::handle, Federate::isConstrained(), PrettyDebug::Out(), pdExcept, pdTerm, and Federate::setConstrained().

Referenced by Federation::kill(), and FederationsList::removeConstrained().

Here is the call graph for this function:

void registerSynchronization ( FederateHandle  the_federate,
const char *  the_label,
const char *  the_tag 
) throw (FederateNotExecutionMember, FederationAlreadyPaused, SaveInProgress, RestoreInProgress, RTIinternalError)

Add a new synchronization point to federation.

Definition at line 969 of file Federation.cc.

References Federation::check(), certi::rtig::D, certi::fedparser::federate, Federation::federates, certi::rtig::G, Federation::handle, PrettyDebug::Out(), pdGendoc, pdTerm, and Federation::synchronizationLabels.

Referenced by FederationsList::manageSynchronization().

Here is the call graph for this function:

void registerSynchronization ( FederateHandle  the_federate,
const char *  the_label,
const char *  the_tag,
unsigned short  federate_setSize,
std::vector< FederateHandle > &  federate_set 
) throw (FederateNotExecutionMember, FederationAlreadyPaused, SaveInProgress, RestoreInProgress, RTIinternalError)

Add a new synchronization point (with federates set) to federation.

Definition at line 1016 of file Federation.cc.

References Federation::check(), certi::rtig::D, certi::fedparser::federate, Federation::federates, certi::rtig::G, Federation::handle, PrettyDebug::Out(), pdGendoc, pdTerm, and Federation::synchronizationLabels.

Here is the call graph for this function:

void unregisterSynchronization ( FederateHandle  theFederate,
const char *  theLabel 
) throw (FederateNotExecutionMember, FederationNotPaused, SaveInProgress, RestoreInProgress, RTIinternalError)

void broadcastSynchronization ( FederateHandle  federate,
const char *  label,
const char *  tag 
) throw (RTIinternalError)

Broadcast an 'Announce Synchronization Point' when registering a new synchronization point.

Definition at line 1072 of file Federation.cc.

References Federation::broadcastAnyMessage(), Federation::check(), NetworkMessage::federate, certi::fedparser::federate, NetworkMessage::federation, certi::rtig::G, Federation::handle, PrettyDebug::Out(), pdGendoc, NetworkMessage::setLabel(), and NetworkMessage::setTag().

Referenced by FederationsList::broadcastSynchronization().

Here is the call graph for this function:

void broadcastSynchronization ( FederateHandle  federate,
const char *  label,
const char *  tag,
unsigned short  federate_setSize,
std::vector< FederateHandle > &  federate_set 
) throw (RTIinternalError)

Broadcast an 'Announce Synchronization Point' when registering a new synchronization point onto a set of federates

Definition at line 1105 of file Federation.cc.

References Federation::broadcastSomeMessage(), Federation::check(), NetworkMessage::federate, certi::fedparser::federate, NetworkMessage::federation, certi::rtig::G, Federation::handle, PrettyDebug::Out(), pdGendoc, NetworkMessage::setLabel(), and NetworkMessage::setTag().

Here is the call graph for this function:

void requestFederationSave ( FederateHandle  the_federate,
const char *  the_label,
FederationTime  time 
) throw (FederateNotExecutionMember, SaveInProgress)

Request a federation save with time.

This service puts each federate from federation in saving state. !! the_time is not managed yet.

Definition at line 1142 of file Federation.cc.

References Federation::broadcastAnyMessage(), Federation::check(), NetworkMessage::federate, Federation::federates, NetworkMessage::federation, certi::rtig::G, Federation::handle, PrettyDebug::Out(), pdGendoc, Federation::saveInProgress, Federation::saveLabel, Federation::saveStatus, NetworkMessage::setDate(), and NetworkMessage::setLabel().

Referenced by FederationsList::requestFederationSave().

Here is the call graph for this function:

void requestFederationSave ( FederateHandle  the_federate,
const char *  the_label 
) throw (FederateNotExecutionMember, SaveInProgress)

Request a federation save without time.

This service puts each federate from federation in saving state. !! the_time is not managed yet.

Definition at line 1182 of file Federation.cc.

References Federation::broadcastAnyMessage(), Federation::check(), NetworkMessage::federate, Federation::federates, NetworkMessage::federation, certi::rtig::G, Federation::handle, PrettyDebug::Out(), pdGendoc, Federation::saveInProgress, Federation::saveLabel, Federation::saveStatus, and NetworkMessage::setLabel().

Here is the call graph for this function:

void federateSaveBegun ( FederateHandle  the_federate  )  throw (FederateNotExecutionMember)

Received from a federate to inform a save has been received and is being processed. Maybe, a timeout should be set to determine if federate still alive.

Definition at line 1219 of file Federation.cc.

References Federation::check(), certi::rtig::G, PrettyDebug::Out(), and pdGendoc.

Referenced by FederationsList::federateSaveBegun().

Here is the call graph for this function:

void federateSaveStatus ( FederateHandle  the_federate,
bool  the_status 
) throw (FederateNotExecutionMember)

void requestFederationRestore ( FederateHandle  the_federate,
const char *  the_label 
) throw (FederateNotExecutionMember)

void federateRestoreStatus ( FederateHandle  the_federate,
bool  the_status 
) throw (FederateNotExecutionMember)

Informs that a federate has ended a restore.

If each federate in federation has ended restoring, this service send a federation restore status.

Definition at line 1380 of file Federation.cc.

References Federation::broadcastAnyMessage(), NM_Factory::create(), certi::fedparser::federate, Federation::federates, NetworkMessage::FEDERATION_NOT_RESTORED, NetworkMessage::FEDERATION_RESTORED, certi::rtig::G, Federation::getFederate(), Federation::handle, PrettyDebug::Out(), pdGendoc, Federation::restoreInProgress, Federation::restoreStatus, and Federate::setRestoring().

Referenced by FederationsList::federateRestoreStatus().

Here is the call graph for this function:

void deleteObject ( FederateHandle  federate,
ObjectHandle  id,
FederationTime  theTime,
const char *  tag 
) throw (FederateNotExecutionMember, DeletePrivilegeNotHeld, ObjectNotKnown, SaveInProgress, RestoreInProgress, InvalidFederationTime, RTIinternalError)

Removes an object instance from federation.

Parameters:
federate Federate requesting removal
id Object handle
theTime Federation Time
tag Label for this operation

Definition at line 918 of file Federation.cc.

References Federation::check(), certi::rtig::D, RootObject::deleteObjectInstance(), certi::fedparser::federate, Federation::handle, Federation::objectHandles, PrettyDebug::Out(), pdRegister, and Federation::root.

Referenced by FederationsList::destroyObject().

Here is the call graph for this function:

void deleteObject ( FederateHandle  federate,
ObjectHandle  id,
const char *  tag 
) throw (FederateNotExecutionMember, DeletePrivilegeNotHeld, ObjectNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)

Removes an object instance from federation.

Parameters:
federate Federate requesting removal
id Object handle
tag Label for this operation

Definition at line 946 of file Federation.cc.

References Federation::check(), certi::rtig::D, RootObject::deleteObjectInstance(), certi::fedparser::federate, Federation::handle, Federation::objectHandles, PrettyDebug::Out(), pdRegister, and Federation::root.

Here is the call graph for this function:

void publishObject ( FederateHandle  theFederateHandle,
ObjectClassHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize,
bool  PubOrUnpub 
) throw (ObjectClassNotDefined, AttributeNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)

ObjectHandle registerObject ( FederateHandle  theFederateHandle,
ObjectClassHandle  theClass,
const char *  theName 
) throw (FederateNotExecutionMember, FederateNotPublishing, ObjectAlreadyRegistered, ObjectClassNotDefined, ObjectClassNotPublished, SaveInProgress, RestoreInProgress, RTIinternalError)

Adds a new object instance to federation.

Definition at line 1568 of file Federation.cc.

References certi::rtig::D, certi::fedparser::federate, certi::rtig::G, Federation::handle, Federation::objectHandles, PrettyDebug::Out(), pdGendoc, pdRegister, RootObject::registerObjectInstance(), and Federation::root.

Referenced by FederationsList::registerObject().

Here is the call graph for this function:

FederateHandle requestObjectOwner ( FederateHandle  theFederateHandle,
ObjectHandle  theObject,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize 
) throw (ObjectNotKnown)

void subscribeObject ( FederateHandle  theFederateHandle,
ObjectClassHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize 
) throw (ObjectClassNotDefined, AttributeNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)

Subscribes attributes to an object class.

After subscription, attribute publishers are notified by the federate service startRegistrationForObjectClass.

Parameters:
[in] federate federate handle of the subscriber
[in] object subscripted object class handle
[in] attributes subscripted vector of attributes
[in] list_size size of the attribute vector

Definition at line 1763 of file Federation.cc.

References Federation::broadcastSomeMessage(), Federation::check(), certi::rtig::D, certi::fedparser::federate, certi::rtig::G, ObjectClass::getAttributeList(), Federation::getFederate(), TreeNamedAndHandledSet::getObjectFromHandle(), Federation::handle, Federate::isClassRelevanceAdvisorySwitch(), RootObject::ObjectClasses, PrettyDebug::Out(), pdGendoc, pdRegister, Federation::root, and ObjectClassSet::subscribe().

Referenced by FederationsList::subscribeObject().

Here is the call graph for this function:

void updateAttributeValues ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
std::vector< AttributeValue_t > &  theValueList,
UShort  theListSize,
FederationTime  theTime,
const char *  theTag 
) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, SaveInProgress, RestoreInProgress, RTIinternalError)

void updateAttributeValues ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
std::vector< AttributeValue_t > &  theValueList,
UShort  theListSize,
const char *  theTag 
) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, SaveInProgress, RestoreInProgress, RTIinternalError)

void broadcastInteraction ( FederateHandle  theFederateHandle,
InteractionClassHandle  theInteractionHandle,
std::vector< ParameterHandle > &  theParameterList,
std::vector< ParameterValue_t > &  theValueList,
UShort  theListSize,
FederationTime  theTime,
RegionHandle  region_handle,
const char *  theTag 
) throw (FederateNotExecutionMember, FederateNotPublishing, InteractionClassNotDefined, InteractionParameterNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)

void broadcastInteraction ( FederateHandle  theFederateHandle,
InteractionClassHandle  theInteractionHandle,
std::vector< ParameterHandle > &  theParameterList,
std::vector< ParameterValue_t > &  theValueList,
UShort  theListSize,
RegionHandle  region_handle,
const char *  theTag 
) throw (FederateNotExecutionMember, FederateNotPublishing, InteractionClassNotDefined, InteractionParameterNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)

void publishInteraction ( FederateHandle  theFederateHandle,
InteractionClassHandle  theInteractionHandle,
bool  PubOrUnpub 
) throw (InteractionClassNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)

void subscribeInteraction ( FederateHandle  theFederateHandle,
InteractionClassHandle  theInteractionHandle,
bool  SubOrUnsub 
) throw (InteractionClassNotDefined, FederateNotExecutionMember, SaveInProgress, SecurityError, RestoreInProgress, RTIinternalError)

bool isOwner ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
AttributeHandle  theAttribute 
) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)

void queryAttributeOwnership ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
AttributeHandle  theAttribute 
) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, SaveInProgress, RestoreInProgress, RTIinternalError)

void negotiateDivestiture ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize,
const char *  theTag 
) throw (FederateNotExecutionMember, ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, AttributeAlreadyBeingDivested, SaveInProgress, RestoreInProgress, RTIinternalError)

void acquireIfAvailable ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize 
) throw (ObjectNotKnown, ObjectClassNotPublished, AttributeNotDefined, AttributeNotPublished, FederateOwnsAttributes, AttributeAlreadyBeingAcquired, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void divest ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize 
) throw (ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void acquire ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize,
const char *  theTag 
) throw (ObjectNotKnown, ObjectClassNotPublished, AttributeNotDefined, AttributeNotPublished, FederateOwnsAttributes, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void cancelDivestiture ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize 
) throw (ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, AttributeDivestitureWasNotRequested, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

AttributeHandleSet * respondRelease ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize 
) throw (ObjectNotKnown, AttributeNotDefined, AttributeNotOwned, FederateWasNotAskedToReleaseAttribute, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void cancelAcquisition ( FederateHandle  theFederateHandle,
ObjectHandle  theObjectHandle,
std::vector< AttributeHandle > &  theAttributeList,
UShort  theListSize 
) throw (ObjectNotKnown, AttributeNotDefined, AttributeAlreadyOwned, AttributeAcquisitionWasNotRequested, FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

long createRegion ( FederateHandle  federate,
SpaceHandle  space,
long  nb_extents 
) throw (SpaceNotDefined, InvalidExtents, SaveInProgress, RestoreInProgress, RTIinternalError)

Definition at line 2220 of file Federation.cc.

References Federation::check(), RootObject::createRegion(), certi::fedparser::federate, and Federation::root.

Referenced by FederationsList::createRegion().

Here is the call graph for this function:

void modifyRegion ( FederateHandle  federate,
RegionHandle  region,
const std::vector< Extent > &  extents 
) throw (RegionNotKnown, InvalidExtents, SaveInProgress, RestoreInProgress, RTIinternalError)

Definition at line 2234 of file Federation.cc.

References Federation::check(), certi::fedparser::federate, RootObject::modifyRegion(), and Federation::root.

Referenced by FederationsList::modifyRegion().

Here is the call graph for this function:

void deleteRegion ( FederateHandle  federate,
long  region 
) throw (RegionNotKnown, RegionInUse, SaveInProgress, RestoreInProgress, RTIinternalError)

deleteRegion

Definition at line 2246 of file Federation.cc.

References Federation::check(), RootObject::deleteRegion(), certi::fedparser::federate, Federation::restoreInProgress, Federation::root, and Federation::saveInProgress.

Referenced by FederationsList::deleteRegion().

Here is the call graph for this function:

void associateRegion ( FederateHandle  federate,
ObjectHandle  object,
RegionHandle  the_handle,
unsigned short  nb,
std::vector< AttributeHandle > &  attributes 
) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)

void unassociateRegion ( FederateHandle  federate,
ObjectHandle  object,
RegionHandle  the_handle 
) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)

unassociateRegion

Definition at line 2288 of file Federation.cc.

References Federation::check(), certi::fedparser::federate, RootObject::getObject(), RootObject::getRegion(), Federation::root, and Object::unassociate().

Referenced by FederationsList::unassociateRegion().

Here is the call graph for this function:

void subscribeAttributesWR ( FederateHandle  federate,
ObjectClassHandle  c,
RegionHandle  region_handle,
unsigned short  nb,
std::vector< AttributeHandle > &  attributes 
) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)

subscribeAttributesWR

Definition at line 2302 of file Federation.cc.

References Federation::check(), certi::fedparser::federate, RootObject::getRegion(), RootObject::ObjectClasses, Federation::root, and ObjectClassSet::subscribe().

Referenced by FederationsList::subscribeAttributesWR().

Here is the call graph for this function:

void unsubscribeAttributesWR ( FederateHandle  federate,
ObjectClassHandle  object_class,
RegionHandle  region_handle 
) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)

unsubscribeAttributesWR

Definition at line 2320 of file Federation.cc.

References Federation::check(), certi::fedparser::federate, RootObject::getObjectClass(), RootObject::getRegion(), Federation::root, and ObjectClass::unsubscribe().

Referenced by FederationsList::unsubscribeAttributesWR().

Here is the call graph for this function:

void subscribeInteractionWR ( FederateHandle  federate,
InteractionClassHandle  interaction,
RegionHandle  region_handle 
) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)

void unsubscribeInteractionWR ( FederateHandle  federate,
InteractionClassHandle  interaction,
RegionHandle  region_handle 
) throw (RegionNotKnown, SaveInProgress, RestoreInProgress, RTIinternalError)

ObjectHandle registerObjectWithRegion ( FederateHandle  federate,
ObjectClassHandle  class_handle,
const char *  object_name,
RegionHandle  region_handle,
int  nb,
std::vector< AttributeHandle > &  attributes 
) throw (ObjectClassNotDefined, ObjectClassNotPublished, AttributeNotDefined, AttributeNotPublished, RegionNotKnown, InvalidRegionContext, ObjectAlreadyRegistered, SaveInProgress, RestoreInProgress, RTIinternalError)

void setClassRelevanceAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void unsetClassRelevanceAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void setInteractionRelevanceAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void unsetInteractionRelevanceAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void setAttributeRelevanceAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void unsetAttributeRelevanceAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void setAttributeScopeAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void unsetAttributeScopeAdvisorySwitch ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember, SaveInProgress, RestoreInProgress, RTIinternalError)

void broadcastAnyMessage ( NetworkMessage msg,
FederateHandle  Except 
) [private]

void broadcastSomeMessage ( NetworkMessage msg,
FederateHandle  Except,
std::vector< FederateHandle > &  fede_array,
int  nbfed 
) [private]

Broadcast 'msg' to some Federates except the specified one.

Definition at line 763 of file Federation.cc.

References certi::BEST_EFFORT, certi::rtig::D, Federation::federates, SecurityServer::getSocketLink(), Federation::NM_msgBufSend, PrettyDebug::Out(), pdExcept, NetworkMessage::send(), and Federation::server.

Referenced by Federation::broadcastSynchronization(), and Federation::subscribeObject().

Here is the call graph for this function:

Federate & getFederate ( const char *  theName  )  throw (FederateNotExecutionMember) [private]

Federate & getFederate ( FederateHandle  theHandle  )  throw (FederateNotExecutionMember) [private]

Return the Federate whose Handle is theHandle, if found.

Definition at line 1414 of file Federation.cc.

References Federation::federates.


Member Data Documentation

Handle handle [private]

std::string name [private]

std::string FEDid [private]

Definition at line 60 of file Federation.hh.

Referenced by Federation::getFEDid().

std::map<const char *, const char *> synchronizationLabels [private]

Labels and Tags not on synchronization.

Definition at line 63 of file Federation.hh.

Referenced by Federation::add(), Federation::isSynchronizing(), Federation::registerSynchronization(), and Federation::unregisterSynchronization().

Definition at line 65 of file Federation.hh.

Referenced by Federation::add(), and Federation::remove().

SecurityServer* server [private]

RootObject* root [private]

LBTS regulators [private]

bool saveInProgress [private]

bool restoreInProgress [private]

bool saveStatus [private]

True if saving was correctly done, false otherwise.

Definition at line 664 of file Federation.hh.

Referenced by Federation::federateSaveStatus(), and Federation::requestFederationSave().

bool restoreStatus [private]

True if restoring was correctly done.

Definition at line 665 of file Federation.hh.

Referenced by Federation::federateRestoreStatus(), and Federation::requestFederationRestore().

int verboseLevel [private]

Definition at line 666 of file Federation.hh.

std::string saveLabel [private]

The label associated with the save request.

Definition at line 667 of file Federation.hh.

Referenced by Federation::requestFederationSave(), and Federation::saveXmlData().


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

Generated on Thu Apr 30 16:00:54 2009 for CERTIDeveloperDocumentation by doxygen 1.5.5