Department of Defense
High Level Architecture
Version 1.0 Runtime Infrastruture
C++ Application Programmer's Interface
May 15, 1997
Parameter Passing Memory Conventions
Base Types
RTI Types
RTI Class Definition
Federation Management
- Create Federation Execution
- Destroy Federation Execution
- Join Federation Execution
- Resign Federation Execution
- Request Pause
- Initiate Pause +
- Pause Achieved
- Request Resume
- Initiate Resume +
- Resume Achieved
- Request Federation Save
- Initiate Federate Save +
- Federate Save Begun
- Federate Save Achieved
- Request Restore
- Initiate Restore +
- Restore Achieved
Declaration Management
- Publish Object Class
- Publish Interaction Class
- Subscribe Object Class Attribute
- Subscribe Interaction Class
- Control Updates +
- Control Interactions +
Object Management
- Request ID
- Register Object
- Update Attribute Values
- Discover Object +
- Reflect Attribute Values +
- Send Interaction
- Receive Interaction +
- Delete Object
- Remove Object +
- Change Attribute Transportation Type
- Change Attribute Order Type
- Change Interaction Transportation Type
- Change Interaction Order Type
- Request Attribute Value Update
- Provide Attribute Value Update +
- Retract
- Reflect Retraction +
Ownership Management
- Request Attribute Ownership Divestiture
- Request Attribute
Ownership Assumption +
- Attribute Ownership Divestiture Notification +
- Attribute Ownership Acquisition Notification +
- Request Attribute Ownership Acquisition
- Request Attribute Ownership Release +
- Query Attribute Ownership
Time Management
- Request Federation Time
- Request LBTS
- Request Federate Time
- Request Minimum Next Event Time
- Set Lookahead
- Request Lookahead
- Time Advance Request
- Next Event Request
- Flush Queue Request
- Time Advance Grant +
Data Distribution Management
- Create Update Region
- Create Subscription Region
- Associate Update Region
- Change Thresholds +
- Modify Region
- Delete Region
RTI Support Services
- Get Object Class Handle
- Get Object Class Name
- Get Attribute Handle
- Get Attribute Name
- Get Interaction Class Handle
- Get Interaction Class Name
- Get Parameter Handle
- Get Parameter Name
- Get Space Handle
- Get Space Name
- Get Federate Handle
- Get Federate Name
- Set Time Regulating
- Set Time Constrained
- Dequeue FIFO Asynchronously
- Tick
- Constructor
- Destructor
Parameter Code | Explanation |
C1 | In parameter by value. |
C2 | Out parameter by reference. |
C3 | Function return by value. |
C4 | In parameter by const reference. Caller provides memory. Caller may free memory or overwrite it upon completion of the call. Callee must copy during the call anything it wishes to save beyond completion of the call. Parameter type must define const accessor methods. |
C5 | Out parameter by reference. Caller provides reference to object. Callee constructs an instance on the heap (new) and returns. The caller destroys the instance (delete) at its leisure. |
C6 | Function return by reference. Callee constructs an instance on the heap (new) and returns a reference. The caller destroys the instance (delete) at its leisure. |
void createFederationExecution (
const FederationExecutionName executionName) // supplied C4
throw (
FederationExecutionAlreadyExists,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void destroyFederationExecution (
const FederationExecutionName executionName) // supplied C4
throw (
FederatesCurrentlyJoined,
FederationExecutionDoesNotExist,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
FederateHandle // returned C3
joinFederationExecution (
const FederateName yourName, // supplied C4
const FederationExecutionName executionName, // supplied C4
FederateAmbassadorPtr federateAmbassadorReference) // supplied C1
throw (
FederateAlreadyExecutionMember,
FederationExecutionDoesNotExist,
CouldNotOpenFED,
ErrorReadingFED,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void resignFederationExecution (
ResignAction theAction) // supplied C1
throw (
FederateOwnsAttributes,
FederateNotExecutionMember,
InvalidResignAction,
ConcurrentAccessAttempted,
RTIinternalError);
void resignFederationExecution ( // not implemented in 1.0
FederateHandle theFederate, // supplied C1
ResignAction theAction) // supplied C1
throw (
FederateOwnsAttributes,
FederateDoesNotExist,
FederationExecutionDoesNotExist,
FederateNotExecutionMember,
InvalidResignAction,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void requestPause (
const PauseLabel label) // supplied C4
throw (
FederationAlreadyPaused,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void initiatePause (
const PauseLabel label) // supplied C4
throw (
FederateAlreadyPaused,
FederateInternalError) = 0;
void pauseAchieved (
const PauseLabel label) // supplied C4
throw (
UnknownLabel,
NoPauseRequested,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void requestResume ()
throw (
FederationNotPaused,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void initiateResume ()
throw (
FederateNotPaused,
FederateInternalError) = 0;
void resumeAchieved ()
throw (
NoResumeRequested,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void requestFederationSave (
const SaveLabel label, // supplied C4
FederationTime theTime) // supplied C1
throw (
FederationTimeAlreadyPassed,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void requestFederationSave (
const SaveLabel label) // supplied C4
throw (
SaveInProgress,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void initiateFederateSave (
const SaveLabel label) // supplied C4
throw (
UnableToPerformSave,
FederateInternalError) = 0;
virtual
void initiateFederateSave ( // not implemented in 1.0
const SaveLabel label, // supplied C4
FederationTime theTime) // supplied C1
throw (
InvalidFederationTime,
UnableToPerformSave,
FederateInternalError) = 0;
void federateSaveBegun ()
throw (
SaveNotInitiated,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void federateSaveBegun ( // not implemented in 1.0
FederationTime theTime) // supplied C1
throw (
SaveNotInitiated,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError);
void federateSaveAchieved ()
throw (
SaveNotInitiated,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError);
void federateSaveNotAchieved ()
throw (
SaveNotInitiated,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError);
void requestRestore (
const SaveLabel label) // supplied C4
throw (
SpecifiedSaveLabelDoesNotExist,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void initiateRestore (
const SaveLabel label) // supplied C4
throw (
SpecifiedSaveLabelDoesNotExist,
CouldNotRestore,
FederateInternalError) = 0;
void restoreAchieved ( )
throw (
RestoreNotRequested,
RTIcanNotRestore,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError);
void restoreNotAchieved ()
throw (
RestoreNotRequested,
RTIcanNotRestore,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError);
void publishObjectClass (
ObjectClassHandle theClass, // supplied C1
const AttributeHandleSet& attributeList) // supplied C4
throw (
ObjectClassNotDefined,
AttributeNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void unpublishObjectClass (
ObjectClassHandle theClass) // supplied C1
throw (
ObjectClassNotDefined,
FederateOwnsAttributes,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void publishInteractionClass (
InteractionClassHandle theInteraction) // supplied C1
throw (
InteractionClassNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void unpublishInteractionClass (
InteractionClassHandle theInteraction) // supplied C1
throw (
InteractionClassNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void subscribeObjectClassAttribute (
ObjectClassHandle theClass, // supplied C1
const AttributeHandleSet& attributeList) // supplied C4
throw (
ObjectClassNotDefined,
AttributeNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void subscribeObjectClassAttribute ( // not implemented in 1.0
ObjectClassHandle theClass, // supplied
AttributeHandle theAttribute, // supplied
Region theRegion) // supplied
throw (
ObjectClassNotDefined,
AttributeNotDefined,
RegionNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void unsubscribeObjectClassAttribute (
ObjectClassHandle theClass) // supplied C1
throw (
ObjectClassNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void unsubscribeObjectClassAttribute ( // not implemented in 1.0
ObjectClassHandle theClass, // supplied
Region theRegion) // supplied
throw (
ObjectClassNotDefined,
RegionNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void subscribeInteractionClass (
InteractionClassHandle theClass) // supplied C1
throw (
InteractionClassNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void subscribeInteractionClass ( // not implemented in 1.0
InteractionClassHandle theClass, // supplied
Region theRegion) // supplied
throw (
InteractionClassNotDefined,
RegionNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void unsubscribeInteractionClass (
InteractionClassHandle theClass) // supplied C1
throw (
InteractionClassNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void unsubscribeInteractionClass ( // not implemented in 1.0
InteractionClassHandle theClass, // supplied
Region theRegion) // supplied
throw (
InteractionClassNotDefined,
RegionNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
virtual
void startUpdates (
ObjectClassHandle theClass, // supplied C1
const AttributeHandleSet& theAttributes) // supplied C4
throw (
ObjectClassNotPublished,
AttributeNotPublished,
FederateInternalError) = 0;
virtual
void stopUpdates (
ObjectClassHandle theClass, // supplied C1
const AttributeHandleSet& theAttributes) // supplied C4
throw (
ObjectClassNotPublished,
AttributeNotPublished,
FederateInternalError) = 0;
virtual
void startInteractionGeneration (
InteractionClassHandle theHandle) // supplied C1
throw (
InteractionClassNotPublished,
FederateInternalError) = 0;
virtual
void stopInteractionGeneration (
InteractionClassHandle theHandle) // supplied C1
throw (
InteractionClassNotPublished,
FederateInternalError) = 0;
void requestID (
ObjectIDcount idCount, // supplied C1
ObjectID& firstID, // returned C2
ObjectID& lastID) // returned C2
throw (
TooManyIDsRequested,
IDsupplyExhausted,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void registerObject (
ObjectClassHandle theClass, // supplied C1
ObjectID theObject) // supplied C1
throw (
ObjectClassNotDefined,
ObjectClassNotPublished,
InvalidObjectID,
ObjectAlreadyRegistered,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
EventRetractionHandle // returned C3
updateAttributeValues (
ObjectID theObject, // supplied C1
const AttributeHandleValuePairSet& theAttributes, // supplied C4
FederationTime theTime, // supplied C1
const UserSuppliedTag theTag) // supplied C4
throw (
ObjectNotKnown,
AttributeNotDefined,
AttributeNotOwned,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void discoverObject (
ObjectID theObject, // supplied C1
ObjectClassHandle theObjectClass, // supplied C1
FederationTime theTime, // supplied C1
const UserSuppliedTag theTag, // supplied C4
EventRetractionHandle theHandle) // supplied C1
throw (
CouldNotDiscover,
ObjectClassNotKnown,
InvalidFederationTime,
FederateInternalError) = 0;
virtual
void reflectAttributeValues (
ObjectID theObject, // supplied C1
const AttributeHandleValuePairSet& theAttributes, // supplied C4
FederationTime theTime, // supplied C1
const UserSuppliedTag theTag, // supplied C4
EventRetractionHandle theHandle) // supplied C1
throw (
ObjectNotKnown,
AttributeNotKnown,
InvalidFederationTime,
FederateInternalError) = 0;
EventRetractionHandle // returned C3
sendInteraction (
InteractionClassHandle theInteraction, // supplied C1
const ParameterHandleValuePairSet& theParameters, // supplied C4
FederationTime theTime, // supplied C1
const UserSuppliedTag theTag) // supplied C4
throw (
InteractionClassNotDefined,
InteractionClassNotPublished,
InteractionParameterNotDefined,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void receiveInteraction (
InteractionClassHandle theInteraction, // supplied C1
const ParameterHandleValuePairSet& theParameters, // supplied C4
FederationTime theTime, // supplied C1
const UserSuppliedTag theTag, // supplied C4
EventRetractionHandle theHandle) // supplied C1
throw (
InteractionClassNotKnown,
InteractionParameterNotKnown,
InvalidFederationTime,
FederateInternalError) = 0;
EventRetractionHandle // returned C3
deleteObject (
ObjectID objectID, // supplied C1
FederationTime theTime, // supplied C1
const UserSuppliedTag theTag) // supplied C4
throw (
ObjectNotKnown,
DeletePrivilegeNotHeld,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void removeObject (
ObjectID theObject, // supplied C1
ObjectRemovalReason theReason, // supplied C1
FederationTime theTime, // supplied C1
const UserSuppliedTag theTag, // supplied C4
EventRetractionHandle theHandle) // supplied C1
throw (
ObjectNotKnown,
InvalidFederationTime,
FederateInternalError) = 0;
virtual
void removeObject (
ObjectID theObject, // supplied C1
ObjectRemovalReason theReason) // supplied C1
throw (
ObjectNotKnown,
InvalidFederationTime,
FederateInternalError) = 0;
void changeAttributeTransportType (
ObjectID theObject, // supplied C1
const AttributeHandleSet& theAttributes, // supplied C4
TransportType theType) // supplied C1
throw (
ObjectNotKnown,
AttributeNotDefined,
AttributeNotOwned,
InvalidTransportType,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void changeAttributeOrderType (
ObjectID theObject, // supplied C1
const AttributeHandleSet& theAttributes, // supplied C4
OrderType theType) // supplied C1
throw (
ObjectNotKnown,
AttributeNotDefined,
AttributeNotOwned,
InvalidOrderType,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void changeInteractionTransportType (
InteractionClassHandle theClass, // supplied C1
TransportType theType) // supplied C1
throw (
InteractionClassNotDefined,
InteractionClassNotPublished,
InvalidTransportType,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void changeInteractionOrderType (
InteractionClassHandle theClass, // supplied C1
OrderType theType) // supplied C1
throw (
InteractionClassNotDefined,
InteractionClassNotPublished,
InvalidOrderType,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void requestObjectAttributeValueUpdate (
ObjectID theObject, // supplied C1
const AttributeHandleSet& theAttributes) // supplied C4
throw (
AttributeNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void requestClassAttributeValueUpdate (
ObjectClassHandle theClass, // supplied C1
const AttributeHandleSet& theAttributes) // supplied C4
throw (
ObjectClassNotDefined,
AttributeNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void provideAttributeValueUpdate (
ObjectID theObject, // supplied C1
const AttributeHandleSet& theAttributes) // supplied C4
throw (
ObjectNotKnown,
AttributeNotKnown,
FederateInternalError) = 0;
void retract (
EventRetractionHandle theHandle) // supplied C1
throw (
InvalidRetractionHandle,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void reflectRetraction (
EventRetractionHandle theHandle) // supplied C1
throw (
EventNotKnown,
FederateInternalError) = 0;
void requestAttributeOwnershipDivestiture (
ObjectID theObject, // supplied C1
const AttributeHandleSet& theAttributes, // supplied C4
OwnershipDivestitureCondition theCondition, // supplied C1
const UserSuppliedTag theTag) // supplied C4
throw (
ObjectNotKnown,
AttributeNotDefined,
AttributeNotOwned,
InvalidDivestitureCondition,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void requestAttributeOwnershipDivestiture (
ObjectID theObject, // supplied C1
const AttributeHandleSet& theAttributes, // supplied C4
OwnershipDivestitureCondition theCondition, // supplied C1
const UserSuppliedTag theTag, // supplied C4
const FederateHandleSet& theCandidates) // supplied C4
throw (
ObjectNotKnown,
AttributeNotDefined,
AttributeNotOwned,
InvalidDivestitureCondition,
FederateDoesNotExist,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
AttributeHandleSet& // returned C6
requestAttributeOwnershipAssumption (
ObjectID theObject, // supplied C1
const AttributeHandleSet& offeredAttributes, // supplied C4
const UserSuppliedTag theTag) // supplied C4
throw (
ObjectNotKnown,
AttributeAlreadyOwned,
FederateInternalError) = 0;
AttributeHandleSet& // returned C6
requestAttributeOwnershipAssumption (
ObjectID theObject, // supplied C1
const AttributeHandleSet& offeredAttributes) // supplied C4
throw (
ObjectNotKnown,
AttributeAlreadyOwned,
FederateInternalError);
virtual
void attributeOwnershipDivestitureNotification (
ObjectID theObject, // supplied C1
const AttributeHandleSet& releasedAttributes) // supplied C4
throw (
ObjectNotKnown,
AttributeNotKnown,
FederateInternalError) = 0;
virtual
void attributeOwnershipAcquisitionNotification (
ObjectID theObject, // supplied C1
const AttributeHandleSet& securedAttributes) // supplied C4
throw (
ObjectNotKnown,
AttributeNotKnown,
FederateInternalError) = 0;
void requestAttributeOwnershipAcquisition (
ObjectID theObject, // supplied C1
const AttributeHandleSet& desiredAttributes, // supplied C4
const UserSuppliedTag theTag) // supplied C4
throw (
ObjectNotKnown,
ObjectClassNotPublished,
ObjectClassNotSubscribed,
AttributeNotDefined,
AttributeNotPublished,
AttributeNotSubscribed,
FederateOwnsAttributes,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
AttributeHandleSet& // returned C6
requestAttributeOwnershipRelease (
ObjectID theObject, // supplied C1
const AttributeHandleSet& candidateAttributes, // supplied C4
const UserSuppliedTag theTag) // supplied C4
throw (
ObjectNotKnown,
AttributeNotKnown,
FederateInternalError) = 0;
void queryAttributeOwnership (
ObjectID theObject, // supplied C1
AttributeHandle theAttribute) // supplied C1
throw (
ObjectNotKnown,
AttributeNotDefined,
AttributeNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void informAttributeOwnership (
ObjectID theObject, // supplied C1
AttributeHandle theAttribute, // supplied C1
FederateHandle theOwner) // supplied C1
throw (
FederateInternalError) = 0;
RTI::Boolean // returned C3
attributeIsOwnedByFederate (
ObjectID theObject, // supplied C1
AttributeHandle theAttribute) // supplied C1
throw (
ObjectNotKnown,
AttributeNotDefined,
AttributeNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
Federate Initiated
FederationTime // returned C3
requestFederationTime ()
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
FederationTime // returned C3
requestLBTS ()
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
FederationTime // returned C3
requestFederateTime ()
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
FederationTime // returned C3
requestMinNextEventTime ()
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void setLookahead (
FederationTimeDelta theLookahead) // supplied C1
throw (
InvalidFederationTimeDelta,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
FederationTimeDelta // returned C3
requestLookahead ()
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void timeAdvanceRequest (
FederationTime theTime) // supplied C1
throw (
TimeAdvanceAlreadyInProgress,
FederationTimeAlreadyPassed,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void timeAdvanceRequestAvailable (
FederationTime theTime) // supplied C1
throw (
TimeAdvanceAlreadyInProgress,
FederationTimeAlreadyPassed,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void nextEventRequest (
FederationTime theTime) // supplied C1
throw (
TimeAdvanceAlreadyInProgress,
FederationTimeAlreadyPassed,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void nextEventRequestAvailable (
FederationTime theTime) // supplied C1
throw (
TimeAdvanceAlreadyInProgress,
FederationTimeAlreadyPassed,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void flushQueueRequest (
FederationTime theTime) // supplied C1
throw (
TimeAdvanceAlreadyInProgress,
FederationTimeAlreadyPassed,
InvalidFederationTime,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
virtual
void timeAdvanceGrant (
FederationTime theTime) // supplied C1
throw (
InvalidFederationTime,
TimeAdvanceWasNotInProgress,
FederationTimeAlreadyPassed,
FederateInternalError) = 0;
void createUpdateRegion ( // not implemented in 1.0
SpaceHandle theSpace, // supplied
ExtentSet& theExtents, // supplied
Region& theRegion) // returned
throw (
SpaceNotDefined,
InvalidExtents,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void createSubscriptionRegion ( // not implemented in 1.0
SpaceName theSpace, // supplied
ExtentSet& theExtents, // supplied
Region& theRegion) // returned
throw (
SpaceNotDefined,
InvalidExtents,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void associateUpdateRegion ( // not implemented in 1.0
Region theRegion, // supplied
ObjectID theObject, // supplied
AttributeHandleSet& theAttributes) // supplied
throw (
RegionNotKnown,
ObjectNotKnown,
AttributeNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void associateUpdateRegion ( // not implemented in 1.0
Region theRegion, // supplied
InteractionClassHandle theClass) // supplied
throw (
RegionNotKnown,
InteractionClassNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void disassociateUpdateRegion ( // not implemented in 1.0
Region theRegion, // supplied
ObjectID theObject, // supplied
AttributeHandleSet& theAttributes) // supplied
throw (
RegionNotKnown,
ObjectNotKnown,
AttributeNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void disassociateUpdateRegion ( // not implemented in 1.0
Region theRegion, // supplied
InteractionClassHandle theClass) // supplied
throw (
RegionNotKnown,
InteractionClassNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
virtual
void changeThresholds (
Region theRegion, // supplied
ThresholdSet& theThresholds) // returned
throw (
RegionNotKnown,
FederateInternalError) = 0;
void modifyRegion ( // not implemented in 1.0
Region theRegion, // supplied
ExtentSet& theExtents) // supplied
throw (
RegionNotKnown,
InvalidExtents,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void deleteRegion ( // not implemented in 1.0
Region theRegion) // supplied
throw (
RegionNotKnown,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
ObjectClassHandle // returned C3
getObjectClassHandle (
const ObjectClassName theName) // supplied C4
throw (
NameNotFound,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
ObjectClassName // returned C6
getObjectClassName (
ObjectClassHandle theHandle) // supplied C1
throw (
ObjectClassNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
AttributeHandle // returned C3
getAttributeHandle (
const AttributeName theName, // supplied C4
ObjectClassHandle whichClass) // supplied C1
throw (
ObjectClassNotDefined,
NameNotFound,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
AttributeName // returned C6
getAttributeName (
AttributeHandle theHandle, // supplied C1
ObjectClassHandle whichClass) // supplied C1
throw (
ObjectClassNotDefined,
AttributeNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
InteractionClassHandle // returned C1
getInteractionClassHandle (
const InteractionClassName theName) // supplied C4
throw (
NameNotFound,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
InteractionClassName // returned C6
getInteractionClassName (
InteractionClassHandle theHandle) // supplied C1
throw (
InteractionClassNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
ParameterHandle // returned C1
getParameterHandle (
const ParameterName theName, // supplied C4
InteractionClassHandle whichClass) // supplied C1
throw (
InteractionClassNotDefined,
NameNotFound,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
ParameterName // returned C6
getParameterName (
ParameterHandle theHandle, // supplied C1
InteractionClassHandle whichClass) // supplied C1
throw (
InteractionClassNotDefined,
InteractionParameterNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
SpaceHandle // returned C1
getSpaceHandle ( // not implemented in 1.0
const SpaceName theName) // supplied C4
throw (
NameNotFound,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
SpaceName // returned C6
getSpaceName ( // not implemented in 1.0
const SpaceHandle theHandle) // supplied C4
throw (
SpaceNotDefined,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
FederateHandle // returned C1
getFederateHandle ( // not implemented in 1.0
const FederateName theName) // supplied C4
throw (
FederateDoesNotExist,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
FederateName // returned C6
getFederateName ( // not implemented in 1.0
FederateHandle theHandle) // supplied C1
throw (
FederateDoesNotExist,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
RTIinternalError,
UnimplementedService);
void turnRegulationOn()
throw (
FederationTimeAlreadyPassed,
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
FederationTime // returned C3
turnRegulationOnNow()
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
turnRegulationOff()
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void setTimeConstrained (
RTI::Boolean state) // supplied C1
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
void dequeueFIFOasynchronously (
RTI::Boolean state) // supplied C1
throw (
FederateNotExecutionMember,
ConcurrentAccessAttempted,
SaveInProgress,
RestoreInProgress,
RTIinternalError);
RTI::Boolean // returned C3
tick ()
throw (
SpecifiedSaveLabelDoesNotExist,
ConcurrentAccessAttempted,
RTIinternalError);
RTI::Boolean // returned C3
tick (
TickTime minimum, // supplied C1
TickTime maximum) // supplied C1
throw (
SpecifiedSaveLabelDoesNotExist,
ConcurrentAccessAttempted,
RTIinternalError);
RTIambassador()
throw (
MemoryExhausted,
RTIinternalError);
~RTIambassador()
throw (
RTIinternalError);
//File baseTypes.hh
//Included in RTI.hh
#ifndef NULL
#define NULL (0)
#endif
typedef unsigned short UShort;
typedef short Short;
typedef unsigned long ULong;
typedef long Long;
typedef double Double;
typedef float Float;
enum Boolean {
RTI_FALSE = 0,
RTI_TRUE};
class Exception {
public:
RTI::ULong _serial;
char *_reason;
const char *_name;
Exception (const char *reason);
Exception (RTI::ULong serial, const char *reason=NULL);
Exception (const Exception &toCopy);
virtual ~Exception ();
Exception & operator = (const Exception &);
friend ostream& operator << (ostream &, Exception *);
};
#define RTI_EXCEPT(A) \
class A : public RTI::Exception { \
public: \
A () { _name = "RTI::"#A; } \
A (const char *reason) : Exception (reason) { _name = "RTI::"#A; } \
A (RTI::ULong serial, const char *reason=NULL) \
: Exception (serial, reason) { _name = "RTI::"#A; } \
};
//File RTItypes.hh
//Included in RTI.hh
#define MAX_FEDERATION 20
#define MAX_FEDERATE 20
#define MAX_FEDERATE_NAME_LENGTH 64
#define MAX_FEDERATION_NAME_LENGTH 64
#define MAX_OBJECT_CLASSES 100
#define MAX_INTERACTION_CLASSES 100
#define MAX_ATTRIBUTES_PER_CLASS 50
#define MAX_PARAMETERS_PER_CLASS 50
#define MAX_BYTES_PER_VALUE 4096
#define PRIVILEGE_TO_DELETE_HANDLE 0
#define ROOT_OBJECT_CLASS_HANDLE 0
#define ROOT_INTERACTION_CLASS_HANDLE 0
#define PRIVILEGE_TO_DELETE_NAME "privilegeToDelete"
#define MAX_USER_TAG_LENGTH 30
#define RTI_VERSION "1.0R10"
#define EPSILON (1.0e-9)
#define POSITIVE_INFINITY (HUGE_VAL)
RTI_EXCEPT(ArrayIndexOutOfBounds)
RTI_EXCEPT(AttributeAlreadyOwned)
RTI_EXCEPT(AttributeNotDefined)
RTI_EXCEPT(AttributeNotKnown)
RTI_EXCEPT(AttributeNotOwned)
RTI_EXCEPT(AttributeNotPublished)
RTI_EXCEPT(AttributeNotSubscribed)
RTI_EXCEPT(ConcurrentAccessAttempted)
RTI_EXCEPT(CouldNotDiscover)
RTI_EXCEPT(CouldNotOpenFED)
RTI_EXCEPT(CouldNotRestore)
RTI_EXCEPT(DeletePrivilegeNotHeld)
RTI_EXCEPT(ErrorReadingFED)
RTI_EXCEPT(EventNotKnown)
RTI_EXCEPT(FederateAlreadyPaused)
RTI_EXCEPT(FederateAlreadyExecutionMember)
RTI_EXCEPT(FederateDoesNotExist)
RTI_EXCEPT(FederateInternalError)
RTI_EXCEPT(FederateLoggingServiceCalls)
RTI_EXCEPT(FederateNameAlreadyInUse)
RTI_EXCEPT(FederateNotExecutionMember)
RTI_EXCEPT(FederateNotPaused)
RTI_EXCEPT(FederateOwnsAttributes)
RTI_EXCEPT(FederatesCurrentlyJoined)
RTI_EXCEPT(FederationAlreadyPaused)
RTI_EXCEPT(FederationExecutionAlreadyExists)
RTI_EXCEPT(FederationExecutionDoesNotExist)
RTI_EXCEPT(FederationNotPaused)
RTI_EXCEPT(FederationTimeAlreadyPassed)
RTI_EXCEPT(HandleValuePairMaximumExceeded)
RTI_EXCEPT(IDsupplyExhausted)
RTI_EXCEPT(InteractionClassNotDefined)
RTI_EXCEPT(InteractionClassNotKnown)
RTI_EXCEPT(InteractionClassNotPublished)
RTI_EXCEPT(InteractionParameterNotDefined)
RTI_EXCEPT(InteractionParameterNotKnown)
RTI_EXCEPT(InvalidDivestitureCondition)
RTI_EXCEPT(InvalidExtents)
RTI_EXCEPT(InvalidFederationTime)
RTI_EXCEPT(InvalidLookahead)
RTI_EXCEPT(InvalidObjectID)
RTI_EXCEPT(InvalidOrderType)
RTI_EXCEPT(InvalidResignAction)
RTI_EXCEPT(InvalidRetractionHandle)
RTI_EXCEPT(InvalidTransportType)
RTI_EXCEPT(MemoryExhausted)
RTI_EXCEPT(NameNotFound)
RTI_EXCEPT(NoPauseRequested)
RTI_EXCEPT(NoResumeRequested)
RTI_EXCEPT(ObjectClassNotDefined)
RTI_EXCEPT(ObjectClassNotKnown)
RTI_EXCEPT(ObjectClassNotPublished)
RTI_EXCEPT(ObjectClassNotSubscribed)
RTI_EXCEPT(ObjectNotKnown)
RTI_EXCEPT(ObjectAlreadyRegistered)
RTI_EXCEPT(RegionNotKnown)
RTI_EXCEPT(RestoreInProgress)
RTI_EXCEPT(RestoreNotRequested)
RTI_EXCEPT(RTIcanNotRestore)
RTI_EXCEPT(RTIinternalError)
RTI_EXCEPT(SpaceNotDefined)
RTI_EXCEPT(SaveInProgress)
RTI_EXCEPT(SaveNotInitiated)
RTI_EXCEPT(SpecifiedSaveLabelDoesNotExist)
RTI_EXCEPT(TimeAdvanceAlreadyInProgress)
RTI_EXCEPT(TimeAdvanceWasNotInProgress)
RTI_EXCEPT(TooManyIDsRequested)
RTI_EXCEPT(UnableToPerformSave)
RTI_EXCEPT(UnimplementedService)
RTI_EXCEPT(UnknownLabel)
RTI_EXCEPT(ValueCountExceeded)
RTI_EXCEPT(ValueLengthExceeded)
enum OrderType {
RECEIVE = 1,
TIMESTAMP
};
enum OwnershipDivestitureCondition {
NEGOTIATED = 1,
UNCONDITIONAL
};
enum ObjectRemovalReason {
OUT_OF_REGION = 1,
OBJECT_DELETED,
NO_LONGER_SUBSCRIBED
};
enum TokenState {
LOCKED = 1,
UNLOCKED,
DIVESTING,
GONE
};
enum TransportType {
RELIABLE = 1,
BEST_EFFORT
};
enum ResignAction {
RELEASE_ATTRIBUTES = 1,
DELETE_OBJECTS,
DELETE_OBJECTS_AND_RELEASE_ATTRIBUTES,
NO_ACTION
};
enum FederateStateType {
RUNNING = 1,
PAUSE_PENDING,
PAUSED,
RESUME_PENDING,
SAVE_PENDING,
SAVING,
RESTORE_PENDING,
RESTORING
};
enum FederationStateType {
FEDERATION_RUNNING = 1,
FEDERATION_PAUSING,
FEDERATION_PAUSED,
FEDERATION_RESUMING
};
enum TimeManagerStateType {
INITIALIZE = 1,
JOINING,
IDLE,
EVENT_PENDING,
EVENT_AVAILABLE_PENDING,
TIME_PENDING,
TIME_AVAILABLE_PENDING,
FLUSH_QUEUE_PENDING
};
class FederateAmbassador;
typedef FederateAmbassador *FederateAmbassadorPtr;
typedef RTI::UShort ObjectClassHandle;
typedef RTI::UShort InteractionClassHandle;
typedef RTI::UShort Handle;
typedef RTI::UShort AttributeHandle;
typedef RTI::UShort ParameterHandle;
typedef RTI::UShort FederateHandle;
typedef RTI::ULong FederateID;
typedef RTI::ULong ObjectID;
typedef RTI::ULong UniqueID;
class HandleValuePairSet {
public:
virtual ~HandleValuePairSet() { ; }
virtual ULong // returned C3
size() const = 0; // Cardinality of the set.
virtual Handle // returned C3
getHandle( // Get ith handle.
ULong i) const // supplied C1
throw (
ArrayIndexOutOfBounds) = 0;
virtual void getValue( // Get ith value.
ULong i, // supplied C1
char *buff, // supplied C4
ULong &valueLength) const // returned C2
throw (
ArrayIndexOutOfBounds) = 0;
virtual void add( // Add new value.
Handle h, // supplied C1
const char *buff, // supplied C4
ULong valueLength) // supplied C1
throw (
ValueLengthExceeded,
ValueCountExceeded) = 0;
virtual void moveFrom( // Add new value.
const HandleValuePairSet& ahvp, // supplied C1
ULong &i) // supplied C1
throw (
ValueCountExceeded,
ArrayIndexOutOfBounds) = 0;
virtual void empty() = 0; // Empty the Set without deallocating space.
virtual inline RTI::ULong start() const = 0;
virtual inline RTI::ULong valid(RTI::ULong i) const = 0;
virtual inline RTI::ULong next(RTI::ULong i) const = 0;
};
typedef HandleValuePairSet AttributeHandleValuePairSet;
class AttributeSetFactory {
public:
static AttributeHandleValuePairSet // returned C6
*create( // Create set with space for
// specified number of attributes.
ULong count) // supplied C1
throw (
MemoryExhausted,
ValueCountExceeded);
};
class AttributeHandleSet {
public:
AttributeHandleSet();
ULong // returned C3
size() const = 0; // Cardinality of the set.
AttributeHandle // returned C3
getHandle( // Get ith handle.
ULong i) const // supplied C1
throw (
ArrayIndexOutOfBounds) = 0;
void add( // Add new value.
AttributeHandle h) // supplied C1
throw (
AttributeNotDefined) = 0;
void empty() = 0; // Empty the Set without deallocating space.
Boolean isEmpty();
Boolean isMember(AttributeHandle h);
AttributeHandleSet setUnion(AttributeHandleSet &);
AttributeHandleSet setIntersection(AttributeHandleSet &);
AttributeHandleSet removeSetIntersection(AttributeHandleSet &);
ULong encodedLength();
void encode(char *buff) const;
static AttributeHandleSet *decode(const char *buff)
throw(ValueCountExceeded);
friend ostream& operator << (ostream&, AttributeHandleSet &);
friend RWFile & operator << (RWFile &, AttributeHandleSet &);
friend RWFile & operator >> (RWFile &, AttributeHandleSet &);
private
UShort _size;
ULong _words[(MAX_ATTRIBUTES_PER_CLASS-1)/32+1];
};
class AttributeHandleSetFactory {
public:
static AttributeHandleSet // returned C6
*create( // Create set with space for specified
// number of AttributeHandles.
ULong count) // supplied C1
throw(
MemoryExhausted,
ValueCountExceeded);
};
typedef RTI::UShort ObjectIDcount;
typedef RTI::Double FederationTimeDelta;
typedef RTI::Double FederationTime;
typedef RTI::Double TickTime;
class FederateHandleSet {
public:
virtual ULong // returned C3
size() const = 0; // Cardinality of the set.
virtual FederateHandle // returned C3
getHandle( // Get ith handle.
ULong i) const // supplied C1
throw (
ArrayIndexOutOfBounds) = 0;
virtual void add( // Add new value.
FederateHandle h) // supplied C1
throw (
ValueCountExceeded) = 0;
virtual void empty() = 0; // Empty the set without deallocating space.
};
class FederateHandleSetFactory {
public:
static FederateHandleSet // returned C6
*create( // Create set with space for specified
// number of FederateHandles.
ULong count) // supplied C1
throw (
MemoryExhausted,
ValueCountExceeded);
};
struct EventRetractionHandle_s {
FederationTime theEventTime;
UniqueID theSerialNumber;
FederateHandle sendingFederate;
};
typedef struct EventRetractionHandle_s EventRetractionHandle;
// All char * declarations should use null terminated strings
typedef char * FederationExecutionName;
typedef char * FederateName;
typedef char * FileName;
typedef char * PauseLabel;
typedef char * SaveLabel;
typedef char * UserSuppliedTag;
typedef char * ObjectClassName;
typedef char * AttributeName;
typedef char * InteractionClassName;
typedef char * ParameterName;
typedef HandleValuePairSet ParameterHandleValuePairSet;
class ParameterSetFactory {
public:
static ParameterHandleValuePairSet // returned C6
*create( // Create set with space for
// specified number of attributes.
ULong count) // supplied C1
throw (
MemoryExhausted,
ValueCountExceeded);
};
struct range_struct_s {
RTI::ULong first;
RTI::ULong last;
};
typedef struct range_struct_s Range;
struct Extents_s {
RTI::ULong _length;
Range* _buffer;
};
typedef struct Extents_s Extents;
struct ExtentSet_s {
RTI::ULong _length;
Extents* _buffer;
};
typedef struct ExtentSet_s ExtentSet;
typedef RTI::ULong Region;
struct Threshold_s {
RTI::ULong value;
};
typedef Threshold_s Threshold;
struct ThresholdSet_s {
RTI::ULong _length;
Threshold* _buffer;
};
typedef struct ThresholdSet_s ThresholdSet;
typedef RTI::Long SpaceHandle;
typedef char * SpaceName;
//File RTI.hh
struct RTIambPrivateRefs;
struct RTIambPrivateData;
class RTI {
public:
#include "baseTypes.hh"
#include "RTItypes.hh"
class RTIambassador {
public:
#include "RTIambServices.hh"
RTIambPrivateData* privateData;
private:
RTIambPrivateRefs* privateRefs;
};
class FederateAmbassador {
public:
#include "federateAmbServices.hh"
};
};