VR-Link API Documentation for DIS
vrlRtiAmb1516e.h
Go to the documentation of this file.
00001 /*********************************************************************
00002  ** Copyright (c) 1992-2010 VT MAK
00003  ** All rights reserved.
00004  *********************************************************************/
00005 
00008 
00009 #pragma once
00010 
00011 #if DtHLA 
00012 #if DtHLA_1516_EVOLVED
00013 
00014 #include <vlutil/vlMachineTypes.h>
00015 #include "rtiNamespace.h"
00016 
00017 using namespace RTI;
00018 
00019 
00024 class DT_DLL_VL DtVrlRtiAmbassador
00025 {
00026 
00027 public:
00028 
00029 
00030    DtVrlRtiAmbassador() 
00031       throw ();
00032 
00033    virtual ~DtVrlRtiAmbassador();
00034 
00035 private:
00037    DtVrlRtiAmbassador(const DtVrlRtiAmbassador& orig);
00038 
00040    DtVrlRtiAmbassador& operator=(const DtVrlRtiAmbassador& orig);
00041 
00042 public:
00043 
00046    virtual RTI::RTIambassador* rtiAmb();
00047 
00048          // 4.2
00049       virtual void connect (
00050          FederateAmbassador & federateAmbassador,
00051          CallbackModel theCallbackModel,
00052          std::wstring const & localSettingsDesignator=L"")
00053          throw (
00054             ConnectionFailed,
00055             InvalidLocalSettingsDesignator,
00056             UnsupportedCallbackModel,
00057             AlreadyConnected,
00058             CallNotAllowedFromWithinCallback,
00059             RTIinternalError) = 0;
00060 
00061       // 4.3
00062       virtual void disconnect ()
00063          throw (
00064             FederateIsExecutionMember,
00065             CallNotAllowedFromWithinCallback,
00066             RTIinternalError) = 0;
00067 
00068       // 4.5
00069       virtual void createFederationExecution (
00070          std::wstring const & federationExecutionName,
00071          std::wstring const & fomModule,
00072          std::wstring const & logicalTimeImplementationName = L"")
00073          throw (
00074             CouldNotCreateLogicalTimeFactory,
00075             InconsistentFDD,
00076             ErrorReadingFDD,
00077             CouldNotOpenFDD,
00078             FederationExecutionAlreadyExists,
00079             NotConnected,
00080             RTIinternalError) = 0;
00081 
00082       virtual void createFederationExecution (
00083          std::wstring const & federationExecutionName,
00084          std::vector<std::wstring> const & fomModules,
00085          std::wstring const & logicalTimeImplementationName = L"")
00086          throw (
00087             CouldNotCreateLogicalTimeFactory,
00088             InconsistentFDD,
00089             ErrorReadingFDD,
00090             CouldNotOpenFDD,
00091             FederationExecutionAlreadyExists,
00092             NotConnected,
00093             RTIinternalError) = 0;
00094 
00095       virtual void createFederationExecutionWithMIM (
00096          std::wstring const & federationExecutionName,
00097          std::vector<std::wstring> const & fomModules,
00098          std::wstring const & mimModule,
00099          std::wstring const & logicalTimeImplementationName = L"")
00100          throw (
00101             CouldNotCreateLogicalTimeFactory,
00102             InconsistentFDD,
00103             ErrorReadingFDD,
00104             CouldNotOpenFDD,
00105             DesignatorIsHLAstandardMIM,
00106             ErrorReadingMIM,
00107             CouldNotOpenMIM,
00108             FederationExecutionAlreadyExists,
00109             NotConnected,
00110             RTIinternalError) = 0;
00111 
00112       // 4.6
00113       virtual void destroyFederationExecution (
00114          std::wstring const & federationExecutionName)
00115          throw (
00116             FederatesCurrentlyJoined,
00117             FederationExecutionDoesNotExist,
00118             NotConnected,
00119             RTIinternalError) = 0;
00120 
00121       // 4.7
00122       virtual void listFederationExecutions () const
00123          throw (
00124             NotConnected,
00125             RTIinternalError) = 0;
00126 
00127       // 4.9
00128       virtual FederateHandle joinFederationExecution (
00129          std::wstring const & federateType,
00130          std::wstring const & federationExecutionName,
00131          std::vector<std::wstring> const & additionalFomModules=std::vector<std::wstring>())
00132          throw (
00133             CouldNotCreateLogicalTimeFactory,
00134             FederationExecutionDoesNotExist,
00135             InconsistentFDD,
00136             ErrorReadingFDD,
00137             CouldNotOpenFDD,
00138             SaveInProgress,
00139             RestoreInProgress,
00140             FederateAlreadyExecutionMember,
00141             NotConnected,
00142             CallNotAllowedFromWithinCallback,
00143             RTIinternalError) = 0;
00144 
00145       virtual FederateHandle joinFederationExecution (
00146          std::wstring const & federateName,
00147          std::wstring const & federateType,
00148          std::wstring const & federationExecutionName,
00149          std::vector<std::wstring> const & additionalFomModules=std::vector<std::wstring>())
00150          throw (
00151             CouldNotCreateLogicalTimeFactory,
00152             FederateNameAlreadyInUse,
00153             FederationExecutionDoesNotExist,
00154          InconsistentFDD,
00155             ErrorReadingFDD,
00156             CouldNotOpenFDD,
00157             SaveInProgress,
00158             RestoreInProgress,
00159             FederateAlreadyExecutionMember,
00160             NotConnected,
00161             CallNotAllowedFromWithinCallback,
00162             RTIinternalError) = 0;
00163 
00164       // 4.10
00165       virtual void resignFederationExecution (
00166          ResignAction resignAction)
00167          throw (
00168             InvalidResignAction,
00169             OwnershipAcquisitionPending,
00170             FederateOwnsAttributes,
00171             FederateNotExecutionMember,
00172             NotConnected,
00173             CallNotAllowedFromWithinCallback,
00174             RTIinternalError) = 0;
00175 
00176       // 4.11
00177       virtual void registerFederationSynchronizationPoint (
00178          std::wstring const & label,
00179          VariableLengthData const & theUserSuppliedTag)
00180          throw (
00181             SaveInProgress,
00182             RestoreInProgress,
00183             FederateNotExecutionMember,
00184             NotConnected,
00185             RTIinternalError) = 0;
00186 
00187       virtual void registerFederationSynchronizationPoint (
00188          std::wstring const & label,
00189          VariableLengthData const & theUserSuppliedTag,
00190          FederateHandleSet const & synchronizationSet)
00191          throw (
00192             InvalidFederateHandle,
00193             SaveInProgress,
00194             RestoreInProgress,
00195             FederateNotExecutionMember,
00196             NotConnected,
00197             RTIinternalError) = 0;
00198 
00199       // 4.14
00200       virtual void synchronizationPointAchieved (
00201          std::wstring const & label,
00202          bool successfully = true)
00203          throw (
00204             SynchronizationPointLabelNotAnnounced,
00205             SaveInProgress,
00206             RestoreInProgress,
00207             FederateNotExecutionMember,
00208             NotConnected,
00209             RTIinternalError) = 0;
00210 
00211       // 4.16
00212       virtual void requestFederationSave (
00213          std::wstring const & label)
00214          throw (
00215             SaveInProgress,
00216             RestoreInProgress,
00217             FederateNotExecutionMember,
00218             NotConnected,
00219             RTIinternalError) = 0;
00220 
00221       virtual void requestFederationSave (
00222          std::wstring const & label,
00223          LogicalTime const & theTime)
00224          throw (
00225             LogicalTimeAlreadyPassed,
00226             InvalidLogicalTime,
00227             FederateUnableToUseTime,
00228             SaveInProgress,
00229             RestoreInProgress,
00230             FederateNotExecutionMember,
00231             NotConnected,
00232             RTIinternalError) = 0;
00233 
00234       // 4.18
00235       virtual void federateSaveBegun ()
00236          throw (
00237             SaveNotInitiated,
00238             RestoreInProgress,
00239             FederateNotExecutionMember,
00240             NotConnected,
00241             RTIinternalError) = 0;
00242 
00243       // 4.19
00244       virtual void federateSaveComplete ()
00245          throw (
00246             FederateHasNotBegunSave,
00247             RestoreInProgress,
00248             FederateNotExecutionMember,
00249             NotConnected,
00250             RTIinternalError) = 0;
00251 
00252       virtual void federateSaveNotComplete ()
00253          throw (
00254             FederateHasNotBegunSave,
00255             RestoreInProgress,
00256             FederateNotExecutionMember,
00257             NotConnected,
00258             RTIinternalError) = 0;
00259 
00260       // 4.21
00261       virtual void abortFederationSave ()
00262          throw (
00263             SaveNotInProgress,
00264             FederateNotExecutionMember,
00265             NotConnected,
00266             RTIinternalError) = 0;
00267 
00268       // 4.22
00269       virtual void queryFederationSaveStatus ()
00270          throw (
00271             RestoreInProgress,
00272             FederateNotExecutionMember,
00273             NotConnected,
00274             RTIinternalError) = 0;
00275 
00276       // 4.24
00277       virtual void requestFederationRestore (
00278          std::wstring const & label)
00279          throw (
00280             SaveInProgress,
00281             RestoreInProgress,
00282             FederateNotExecutionMember,
00283             NotConnected,
00284             RTIinternalError) = 0;
00285 
00286       // 4.28
00287       virtual void federateRestoreComplete ()
00288          throw (
00289             RestoreNotRequested,
00290             SaveInProgress,
00291             FederateNotExecutionMember,
00292             NotConnected,
00293             RTIinternalError) = 0;
00294 
00295       virtual void federateRestoreNotComplete ()
00296          throw (
00297             RestoreNotRequested,
00298             SaveInProgress,
00299             FederateNotExecutionMember,
00300             NotConnected,
00301             RTIinternalError) = 0;
00302 
00303       // 4.30
00304       virtual void abortFederationRestore ()
00305          throw (
00306             RestoreNotInProgress,
00307             FederateNotExecutionMember,
00308             NotConnected,
00309             RTIinternalError) = 0;
00310 
00311       // 4.31
00312       virtual void queryFederationRestoreStatus ()
00313          throw (
00314             SaveInProgress,
00315             FederateNotExecutionMember,
00316             NotConnected,
00317             RTIinternalError) = 0;
00318 
00320       // Declaration Management Services //
00322 
00323       // 5.2
00324       virtual void publishObjectClassAttributes (
00325          ObjectClassHandle theClass,
00326          AttributeHandleSet const & attributeList)
00327          throw (
00328             AttributeNotDefined,
00329             ObjectClassNotDefined,
00330             SaveInProgress,
00331             RestoreInProgress,
00332             FederateNotExecutionMember,
00333             NotConnected,
00334             RTIinternalError) = 0;
00335 
00336       // 5.3
00337       virtual void unpublishObjectClass (
00338          ObjectClassHandle theClass)
00339          throw (
00340             OwnershipAcquisitionPending,
00341             ObjectClassNotDefined,
00342             SaveInProgress,
00343             RestoreInProgress,
00344             FederateNotExecutionMember,
00345             NotConnected,
00346             RTIinternalError) = 0;
00347 
00348       virtual void unpublishObjectClassAttributes (
00349          ObjectClassHandle theClass,
00350          AttributeHandleSet const & attributeList)
00351          throw (
00352             OwnershipAcquisitionPending,
00353             AttributeNotDefined,
00354             ObjectClassNotDefined,
00355             SaveInProgress,
00356             RestoreInProgress,
00357             FederateNotExecutionMember,
00358             NotConnected,
00359             RTIinternalError) = 0;
00360 
00361       // 5.4
00362       virtual void publishInteractionClass (
00363          InteractionClassHandle theInteraction)
00364          throw (
00365             InteractionClassNotDefined,
00366             SaveInProgress,
00367             RestoreInProgress,
00368             FederateNotExecutionMember,
00369             NotConnected,
00370             RTIinternalError) = 0;
00371 
00372       // 5.5
00373       virtual void unpublishInteractionClass (
00374          InteractionClassHandle theInteraction)
00375          throw (
00376             InteractionClassNotDefined,
00377             SaveInProgress,
00378             RestoreInProgress,
00379             FederateNotExecutionMember,
00380             NotConnected,
00381             RTIinternalError) = 0;
00382 
00383       // 5.6
00384       virtual void subscribeObjectClassAttributes (
00385          ObjectClassHandle theClass,
00386          AttributeHandleSet const & attributeList,
00387          bool active = true,
00388          std::wstring const & updateRateDesignator = L"")
00389          throw (
00390             AttributeNotDefined,
00391             ObjectClassNotDefined,
00392             InvalidUpdateRateDesignator,
00393             SaveInProgress,
00394             RestoreInProgress,
00395             FederateNotExecutionMember,
00396             NotConnected,
00397             RTIinternalError) = 0;
00398 
00399       // 5.7
00400       virtual void unsubscribeObjectClass (
00401          ObjectClassHandle theClass)
00402          throw (
00403             ObjectClassNotDefined,
00404             SaveInProgress,
00405             RestoreInProgress,
00406             FederateNotExecutionMember,
00407             NotConnected,
00408             RTIinternalError) = 0;
00409 
00410       virtual void unsubscribeObjectClassAttributes (
00411          ObjectClassHandle theClass,
00412          AttributeHandleSet const & attributeList)
00413          throw (
00414             AttributeNotDefined,
00415             ObjectClassNotDefined,
00416             SaveInProgress,
00417             RestoreInProgress,
00418             FederateNotExecutionMember,
00419             NotConnected,
00420             RTIinternalError) = 0;
00421 
00422       // 5.8
00423       virtual void subscribeInteractionClass (
00424          InteractionClassHandle theClass,
00425          bool active = true)
00426          throw (
00427             FederateServiceInvocationsAreBeingReportedViaMOM,
00428             InteractionClassNotDefined,
00429             SaveInProgress,
00430             RestoreInProgress,
00431             FederateNotExecutionMember,
00432             NotConnected,
00433             RTIinternalError) = 0;
00434 
00435       // 5.9
00436       virtual void unsubscribeInteractionClass (
00437          InteractionClassHandle theClass)
00438          throw (
00439             InteractionClassNotDefined,
00440             SaveInProgress,
00441             RestoreInProgress,
00442             FederateNotExecutionMember,
00443             NotConnected,
00444             RTIinternalError) = 0;
00445 
00447       // Object Management Services //
00449 
00450       // 6.2
00451       virtual void reserveObjectInstanceName (
00452          std::wstring const & theObjectInstanceName)
00453          throw (
00454             IllegalName,
00455             SaveInProgress,
00456             RestoreInProgress,
00457             FederateNotExecutionMember,
00458             NotConnected,
00459             RTIinternalError) = 0;
00460 
00461       // 6.4
00462       virtual void releaseObjectInstanceName (
00463          std::wstring const & theObjectInstanceName)
00464          throw (
00465             ObjectInstanceNameNotReserved,
00466             SaveInProgress,
00467             RestoreInProgress,
00468             FederateNotExecutionMember,
00469             NotConnected,
00470             RTIinternalError) = 0;
00471 
00472       // 6.5
00473       virtual void reserveMultipleObjectInstanceName (
00474          std::set<std::wstring> const & theObjectInstanceNames)
00475          throw (
00476             IllegalName,
00477             NameSetWasEmpty,
00478             SaveInProgress,
00479             RestoreInProgress,
00480             FederateNotExecutionMember,
00481             NotConnected,
00482             RTIinternalError) = 0;
00483 
00484       // 6.7
00485       virtual void releaseMultipleObjectInstanceName (
00486          std::set<std::wstring> const & theObjectInstanceNames)
00487          throw (
00488             ObjectInstanceNameNotReserved,
00489             SaveInProgress,
00490             RestoreInProgress,
00491             FederateNotExecutionMember,
00492             NotConnected,
00493             RTIinternalError) = 0;
00494 
00495       // 6.8
00496       virtual ObjectInstanceHandle registerObjectInstance (
00497          ObjectClassHandle theClass)
00498          throw (
00499             ObjectClassNotPublished,
00500             ObjectClassNotDefined,
00501             SaveInProgress,
00502             RestoreInProgress,
00503             FederateNotExecutionMember,
00504             NotConnected,
00505             RTIinternalError) = 0;
00506 
00507       virtual ObjectInstanceHandle registerObjectInstance (
00508          ObjectClassHandle theClass,
00509          std::wstring const & theObjectInstanceName)
00510          throw (
00511             ObjectInstanceNameInUse,
00512             ObjectInstanceNameNotReserved,
00513             ObjectClassNotPublished,
00514             ObjectClassNotDefined,
00515             SaveInProgress,
00516             RestoreInProgress,
00517             FederateNotExecutionMember,
00518             NotConnected,
00519             RTIinternalError) = 0;
00520 
00521       // 6.10
00522       virtual void updateAttributeValues (
00523          ObjectInstanceHandle theObject,
00524          AttributeHandleValueMap const & theAttributeValues,
00525          VariableLengthData const & theUserSuppliedTag)
00526          throw (
00527             AttributeNotOwned,
00528             AttributeNotDefined,
00529             ObjectInstanceNotKnown,
00530             SaveInProgress,
00531             RestoreInProgress,
00532             FederateNotExecutionMember,
00533             NotConnected,
00534             RTIinternalError) = 0;
00535 
00536       virtual MessageRetractionHandle updateAttributeValues (
00537          ObjectInstanceHandle theObject,
00538          AttributeHandleValueMap const & theAttributeValues,
00539          VariableLengthData const & theUserSuppliedTag,
00540          LogicalTime const & theTime)
00541          throw (
00542             InvalidLogicalTime,
00543             AttributeNotOwned,
00544             AttributeNotDefined,
00545             ObjectInstanceNotKnown,
00546             SaveInProgress,
00547             RestoreInProgress,
00548             FederateNotExecutionMember,
00549             NotConnected,
00550             RTIinternalError) = 0;
00551 
00552       // 6.12
00553       virtual void sendInteraction (
00554          InteractionClassHandle theInteraction,
00555          ParameterHandleValueMap const & theParameterValues,
00556          VariableLengthData const & theUserSuppliedTag)
00557          throw (
00558             InteractionClassNotPublished,
00559             InteractionParameterNotDefined,
00560             InteractionClassNotDefined,
00561             SaveInProgress,
00562             RestoreInProgress,
00563             FederateNotExecutionMember,
00564             NotConnected,
00565             RTIinternalError) = 0;
00566 
00567       virtual MessageRetractionHandle sendInteraction (
00568          InteractionClassHandle theInteraction,
00569          ParameterHandleValueMap const & theParameterValues,
00570          VariableLengthData const & theUserSuppliedTag,
00571          LogicalTime const & theTime)
00572          throw (
00573             InvalidLogicalTime,
00574             InteractionClassNotPublished,
00575             InteractionParameterNotDefined,
00576             InteractionClassNotDefined,
00577             SaveInProgress,
00578             RestoreInProgress,
00579             FederateNotExecutionMember,
00580             NotConnected,
00581             RTIinternalError) = 0;
00582 
00583       // 6.14
00584       virtual void deleteObjectInstance (
00585          ObjectInstanceHandle theObject,
00586          VariableLengthData const & theUserSuppliedTag)
00587          throw (
00588             DeletePrivilegeNotHeld,
00589             ObjectInstanceNotKnown,
00590             SaveInProgress,
00591             RestoreInProgress,
00592             FederateNotExecutionMember,
00593             NotConnected,
00594             RTIinternalError) = 0;
00595 
00596       virtual MessageRetractionHandle deleteObjectInstance (
00597          ObjectInstanceHandle theObject,
00598          VariableLengthData const & theUserSuppliedTag,
00599          LogicalTime  const & theTime)
00600          throw (
00601             InvalidLogicalTime,
00602             DeletePrivilegeNotHeld,
00603             ObjectInstanceNotKnown,
00604             SaveInProgress,
00605             RestoreInProgress,
00606             FederateNotExecutionMember,
00607             NotConnected,
00608             RTIinternalError) = 0;
00609 
00610       // 6.16
00611       virtual void localDeleteObjectInstance (
00612          ObjectInstanceHandle theObject)
00613          throw (
00614             OwnershipAcquisitionPending,
00615             FederateOwnsAttributes,
00616             ObjectInstanceNotKnown,
00617             SaveInProgress,
00618             RestoreInProgress,
00619             FederateNotExecutionMember,
00620             NotConnected,
00621             RTIinternalError) = 0;
00622 
00623       // 6.19
00624       virtual void requestAttributeValueUpdate (
00625          ObjectInstanceHandle theObject,
00626          AttributeHandleSet const & theAttributes,
00627          VariableLengthData const & theUserSuppliedTag)
00628          throw (
00629             AttributeNotDefined,
00630             ObjectInstanceNotKnown,
00631             SaveInProgress,
00632             RestoreInProgress,
00633             FederateNotExecutionMember,
00634             NotConnected,
00635             RTIinternalError) = 0;
00636 
00637       virtual void requestAttributeValueUpdate (
00638          ObjectClassHandle theClass,
00639          AttributeHandleSet const & theAttributes,
00640          VariableLengthData const & theUserSuppliedTag)
00641          throw (
00642             AttributeNotDefined,
00643             ObjectClassNotDefined,
00644             SaveInProgress,
00645             RestoreInProgress,
00646             FederateNotExecutionMember,
00647             NotConnected,
00648             RTIinternalError) = 0;
00649 
00650       // 6.23
00651       virtual void requestAttributeTransportationTypeChange (
00652          ObjectInstanceHandle theObject,
00653          AttributeHandleSet const & theAttributes,
00654          TransportationType theType)
00655          throw (
00656             AttributeAlreadyBeingChanged,
00657             AttributeNotOwned,
00658             AttributeNotDefined,
00659             ObjectInstanceNotKnown,
00660             InvalidTransportationType,
00661             SaveInProgress,
00662             RestoreInProgress,
00663             FederateNotExecutionMember,
00664             NotConnected,
00665             RTIinternalError) = 0;
00666 
00667       // 6.25
00668       virtual void queryAttributeTransportationType (
00669          ObjectInstanceHandle theObject,
00670          AttributeHandle theAttribute)
00671          throw (
00672             AttributeNotDefined,
00673             ObjectInstanceNotKnown,
00674             SaveInProgress,
00675             RestoreInProgress,
00676             FederateNotExecutionMember,
00677             NotConnected,
00678             RTIinternalError) = 0;
00679 
00680       // 6.27
00681       virtual void requestInteractionTransportationTypeChange (
00682          InteractionClassHandle theClass,
00683          TransportationType theType)
00684          throw (
00685             InteractionClassAlreadyBeingChanged,
00686             InteractionClassNotPublished,
00687             InteractionClassNotDefined,
00688             InvalidTransportationType,
00689             SaveInProgress,
00690             RestoreInProgress,
00691             FederateNotExecutionMember,
00692             NotConnected,
00693             RTIinternalError) = 0;
00694 
00695       // 6.29
00696       virtual void queryInteractionTransportationType (
00697          FederateHandle theFederate,
00698          InteractionClassHandle theInteraction)
00699          throw (
00700             InteractionClassNotDefined,
00701             SaveInProgress,
00702             RestoreInProgress,
00703             FederateNotExecutionMember,
00704             NotConnected,
00705             RTIinternalError) = 0;
00706 
00707 
00709       // Ownership Management Services //
00711 
00712       // 7.2
00713       virtual void unconditionalAttributeOwnershipDivestiture (
00714          ObjectInstanceHandle theObject,
00715          AttributeHandleSet const & theAttributes)
00716          throw (
00717             AttributeNotOwned,
00718             AttributeNotDefined,
00719             ObjectInstanceNotKnown,
00720             SaveInProgress,
00721             RestoreInProgress,
00722             FederateNotExecutionMember,
00723             NotConnected,
00724             RTIinternalError) = 0;
00725 
00726       // 7.3
00727       virtual void negotiatedAttributeOwnershipDivestiture (
00728          ObjectInstanceHandle theObject,
00729          AttributeHandleSet const & theAttributes,
00730          VariableLengthData const & theUserSuppliedTag)
00731          throw (
00732             AttributeAlreadyBeingDivested,
00733             AttributeNotOwned,
00734             AttributeNotDefined,
00735             ObjectInstanceNotKnown,
00736             SaveInProgress,
00737             RestoreInProgress,
00738             FederateNotExecutionMember,
00739             NotConnected,
00740             RTIinternalError) = 0;
00741 
00742       // 7.6
00743       virtual void confirmDivestiture (
00744          ObjectInstanceHandle theObject,
00745          AttributeHandleSet const & confirmedAttributes,
00746          VariableLengthData const & theUserSuppliedTag)
00747          throw (
00748             NoAcquisitionPending,
00749             AttributeDivestitureWasNotRequested,
00750             AttributeNotOwned,
00751             AttributeNotDefined,
00752             ObjectInstanceNotKnown,
00753             SaveInProgress,
00754             RestoreInProgress,
00755             FederateNotExecutionMember,
00756             NotConnected,
00757             RTIinternalError) = 0;
00758 
00759       // 7.8
00760       virtual void attributeOwnershipAcquisition (
00761          ObjectInstanceHandle theObject,
00762          AttributeHandleSet const & desiredAttributes,
00763          VariableLengthData const & theUserSuppliedTag)
00764          throw (
00765             AttributeNotPublished,
00766             ObjectClassNotPublished,
00767             FederateOwnsAttributes,
00768             AttributeNotDefined,
00769             ObjectInstanceNotKnown,
00770             SaveInProgress,
00771             RestoreInProgress,
00772             FederateNotExecutionMember,
00773             NotConnected,
00774             RTIinternalError) = 0;
00775 
00776       // 7.9
00777       virtual void attributeOwnershipAcquisitionIfAvailable (
00778          ObjectInstanceHandle theObject,
00779          AttributeHandleSet const & desiredAttributes)
00780          throw (
00781             AttributeAlreadyBeingAcquired,
00782             AttributeNotPublished,
00783             ObjectClassNotPublished,
00784             FederateOwnsAttributes,
00785             AttributeNotDefined,
00786             ObjectInstanceNotKnown,
00787             SaveInProgress,
00788             RestoreInProgress,
00789             FederateNotExecutionMember,
00790             NotConnected,
00791             RTIinternalError) = 0;
00792 
00793       // 7.12
00794       virtual void attributeOwnershipReleaseDenied (
00795          ObjectInstanceHandle theObject,
00796          AttributeHandleSet const & theAttributes)
00797          throw (
00798             AttributeNotOwned,
00799             AttributeNotDefined,
00800             ObjectInstanceNotKnown,
00801             SaveInProgress,
00802             RestoreInProgress,
00803             FederateNotExecutionMember,
00804             NotConnected,
00805             RTIinternalError) = 0;
00806 
00807       // 7.13
00808       virtual void attributeOwnershipDivestitureIfWanted (
00809          ObjectInstanceHandle theObject,
00810          AttributeHandleSet const & theAttributes,
00811          AttributeHandleSet & theDivestedAttributes) // filled by RTI
00812          throw (
00813             AttributeNotOwned,
00814             AttributeNotDefined,
00815             ObjectInstanceNotKnown,
00816             SaveInProgress,
00817             RestoreInProgress,
00818             FederateNotExecutionMember,
00819             NotConnected,
00820             RTIinternalError) = 0;
00821 
00822       // 7.14
00823       virtual void cancelNegotiatedAttributeOwnershipDivestiture (
00824          ObjectInstanceHandle theObject,
00825          AttributeHandleSet const & theAttributes)
00826          throw (
00827             AttributeDivestitureWasNotRequested,
00828             AttributeNotOwned,
00829             AttributeNotDefined,
00830             ObjectInstanceNotKnown,
00831             SaveInProgress,
00832             RestoreInProgress,
00833             FederateNotExecutionMember,
00834             NotConnected,
00835             RTIinternalError) = 0;
00836 
00837       // 7.15
00838       virtual void cancelAttributeOwnershipAcquisition (
00839          ObjectInstanceHandle theObject,
00840          AttributeHandleSet const & theAttributes)
00841          throw (
00842             AttributeAcquisitionWasNotRequested,
00843             AttributeAlreadyOwned,
00844             AttributeNotDefined,
00845             ObjectInstanceNotKnown,
00846             SaveInProgress,
00847             RestoreInProgress,
00848             FederateNotExecutionMember,
00849             NotConnected,
00850             RTIinternalError) = 0;
00851 
00852       // 7.17
00853       virtual void queryAttributeOwnership (
00854          ObjectInstanceHandle theObject,
00855          AttributeHandle theAttribute)
00856          throw (
00857             AttributeNotDefined,
00858             ObjectInstanceNotKnown,
00859             SaveInProgress,
00860             RestoreInProgress,
00861             FederateNotExecutionMember,
00862             NotConnected,
00863             RTIinternalError) = 0;
00864 
00865       // 7.19
00866       virtual bool isAttributeOwnedByFederate (
00867          ObjectInstanceHandle theObject,
00868          AttributeHandle theAttribute)
00869          throw (
00870             AttributeNotDefined,
00871             ObjectInstanceNotKnown,
00872             SaveInProgress,
00873             RestoreInProgress,
00874             FederateNotExecutionMember,
00875             NotConnected,
00876             RTIinternalError) = 0;
00877 
00879       // Time Management Services //
00881 
00882       // 8.2
00883       virtual void enableTimeRegulation (
00884          LogicalTimeInterval const & theLookahead)
00885          throw (
00886             InvalidLookahead,
00887             InTimeAdvancingState,
00888             RequestForTimeRegulationPending,
00889             TimeRegulationAlreadyEnabled,
00890             SaveInProgress,
00891             RestoreInProgress,
00892             FederateNotExecutionMember,
00893             NotConnected,
00894             RTIinternalError) = 0;
00895 
00896       // 8.4
00897       virtual void disableTimeRegulation ()
00898          throw (
00899             TimeRegulationIsNotEnabled,
00900             SaveInProgress,
00901             RestoreInProgress,
00902             FederateNotExecutionMember,
00903             NotConnected,
00904             RTIinternalError) = 0;
00905 
00906       // 8.5
00907       virtual void enableTimeConstrained ()
00908          throw (
00909             InTimeAdvancingState,
00910             RequestForTimeConstrainedPending,
00911             TimeConstrainedAlreadyEnabled,
00912             SaveInProgress,
00913             RestoreInProgress,
00914             FederateNotExecutionMember,
00915             NotConnected,
00916             RTIinternalError) = 0;
00917 
00918       // 8.7
00919       virtual void disableTimeConstrained ()
00920          throw (
00921             TimeConstrainedIsNotEnabled,
00922             SaveInProgress,
00923             RestoreInProgress,
00924             FederateNotExecutionMember,
00925             NotConnected,
00926             RTIinternalError) = 0;
00927 
00928       // 8.8
00929       virtual void timeAdvanceRequest (
00930          LogicalTime const & theTime)
00931          throw (
00932             LogicalTimeAlreadyPassed,
00933             InvalidLogicalTime,
00934             InTimeAdvancingState,
00935             RequestForTimeRegulationPending,
00936             RequestForTimeConstrainedPending,
00937             SaveInProgress,
00938             RestoreInProgress,
00939             FederateNotExecutionMember,
00940             NotConnected,
00941             RTIinternalError) = 0;
00942 
00943       // 8.9
00944       virtual void timeAdvanceRequestAvailable (
00945          LogicalTime const & theTime)
00946          throw (
00947             LogicalTimeAlreadyPassed,
00948             InvalidLogicalTime,
00949             InTimeAdvancingState,
00950             RequestForTimeRegulationPending,
00951             RequestForTimeConstrainedPending,
00952             SaveInProgress,
00953             RestoreInProgress,
00954             FederateNotExecutionMember,
00955             NotConnected,
00956             RTIinternalError) = 0;
00957 
00958       // 8.10
00959       virtual void nextMessageRequest (
00960          LogicalTime const & theTime)
00961          throw (
00962             LogicalTimeAlreadyPassed,
00963             InvalidLogicalTime,
00964             InTimeAdvancingState,
00965             RequestForTimeRegulationPending,
00966             RequestForTimeConstrainedPending,
00967             SaveInProgress,
00968             RestoreInProgress,
00969             FederateNotExecutionMember,
00970             NotConnected,
00971             RTIinternalError) = 0;
00972 
00973       // 8.11
00974       virtual void nextMessageRequestAvailable (
00975          LogicalTime const & theTime)
00976          throw (
00977             LogicalTimeAlreadyPassed,
00978             InvalidLogicalTime,
00979             InTimeAdvancingState,
00980             RequestForTimeRegulationPending,
00981             RequestForTimeConstrainedPending,
00982             SaveInProgress,
00983             RestoreInProgress,
00984             FederateNotExecutionMember,
00985             NotConnected,
00986             RTIinternalError) = 0;
00987 
00988       // 8.12
00989       virtual void flushQueueRequest (
00990          LogicalTime const & theTime)
00991          throw (
00992             LogicalTimeAlreadyPassed,
00993             InvalidLogicalTime,
00994             InTimeAdvancingState,
00995             RequestForTimeRegulationPending,
00996             RequestForTimeConstrainedPending,
00997             SaveInProgress,
00998             RestoreInProgress,
00999             FederateNotExecutionMember,
01000             NotConnected,
01001             RTIinternalError) = 0;
01002 
01003       // 8.14
01004       virtual void enableAsynchronousDelivery ()
01005          throw (
01006             AsynchronousDeliveryAlreadyEnabled,
01007             SaveInProgress,
01008             RestoreInProgress,
01009             FederateNotExecutionMember,
01010             NotConnected,
01011             RTIinternalError) = 0;
01012 
01013       // 8.15
01014       virtual void disableAsynchronousDelivery ()
01015          throw (
01016             AsynchronousDeliveryAlreadyDisabled,
01017             SaveInProgress,
01018             RestoreInProgress,
01019             FederateNotExecutionMember,
01020             NotConnected,
01021             RTIinternalError) = 0;
01022 
01023       // 8.16
01024       virtual bool queryGALT (LogicalTime & theTime)
01025          throw (
01026             SaveInProgress,
01027             RestoreInProgress,
01028             FederateNotExecutionMember,
01029             NotConnected,
01030             RTIinternalError) = 0;
01031 
01032       // 8.17
01033       virtual void queryLogicalTime (LogicalTime & theTime)
01034          throw (
01035             SaveInProgress,
01036             RestoreInProgress,
01037             FederateNotExecutionMember,
01038             NotConnected,
01039             RTIinternalError) = 0;
01040 
01041       // 8.18
01042       virtual bool queryLITS (LogicalTime & theTime)
01043          throw (
01044             SaveInProgress,
01045             RestoreInProgress,
01046             FederateNotExecutionMember,
01047             NotConnected,
01048             RTIinternalError) = 0;
01049 
01050       // 8.19
01051       virtual void modifyLookahead (
01052          LogicalTimeInterval const & theLookahead)
01053          throw (
01054             InvalidLookahead,
01055             InTimeAdvancingState,
01056             TimeRegulationIsNotEnabled,
01057             SaveInProgress,
01058             RestoreInProgress,
01059             FederateNotExecutionMember,
01060             NotConnected,
01061             RTIinternalError) = 0;
01062 
01063       // 8.20
01064       virtual void queryLookahead (LogicalTimeInterval & interval)
01065          throw (
01066             TimeRegulationIsNotEnabled,
01067             SaveInProgress,
01068             RestoreInProgress,
01069             FederateNotExecutionMember,
01070             NotConnected,
01071             RTIinternalError) = 0;
01072 
01073       // 8.21
01074       virtual void retract (
01075          MessageRetractionHandle theHandle)
01076          throw (
01077             MessageCanNoLongerBeRetracted,
01078             InvalidMessageRetractionHandle,
01079             TimeRegulationIsNotEnabled,
01080             SaveInProgress,
01081             RestoreInProgress,
01082             FederateNotExecutionMember,
01083             NotConnected,
01084             RTIinternalError) = 0;
01085 
01086       // 8.23
01087       virtual void changeAttributeOrderType (
01088          ObjectInstanceHandle theObject,
01089          AttributeHandleSet const & theAttributes,
01090          OrderType theType)
01091          throw (
01092             AttributeNotOwned,
01093             AttributeNotDefined,
01094             ObjectInstanceNotKnown,
01095             SaveInProgress,
01096             RestoreInProgress,
01097             FederateNotExecutionMember,
01098             NotConnected,
01099             RTIinternalError) = 0;
01100 
01101       // 8.24
01102       virtual void changeInteractionOrderType (
01103          InteractionClassHandle theClass,
01104          OrderType theType)
01105          throw (
01106             InteractionClassNotPublished,
01107             InteractionClassNotDefined,
01108             SaveInProgress,
01109             RestoreInProgress,
01110             FederateNotExecutionMember,
01111             NotConnected,
01112             RTIinternalError) = 0;
01113 
01115       // Data Distribution Management //
01117 
01118       // 9.2
01119       virtual RegionHandle createRegion (
01120          DimensionHandleSet const & theDimensions)
01121          throw (
01122             InvalidDimensionHandle,
01123             SaveInProgress,
01124             RestoreInProgress,
01125             FederateNotExecutionMember,
01126             NotConnected,
01127             RTIinternalError) = 0;
01128 
01129       // 9.3
01130       virtual void commitRegionModifications (
01131          RegionHandleSet const & theRegionHandleSet)
01132          throw (
01133             RegionNotCreatedByThisFederate,
01134             InvalidRegion,
01135             SaveInProgress,
01136             RestoreInProgress,
01137             FederateNotExecutionMember,
01138             NotConnected,
01139             RTIinternalError) = 0;
01140 
01141       // 9.4
01142       virtual void deleteRegion (
01143          RegionHandle const & theRegion)
01144          throw (
01145             RegionInUseForUpdateOrSubscription,
01146             RegionNotCreatedByThisFederate,
01147             InvalidRegion,
01148             SaveInProgress,
01149             RestoreInProgress,
01150             FederateNotExecutionMember,
01151             NotConnected,
01152             RTIinternalError) = 0;
01153 
01154       // 9.5
01155       virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
01156          ObjectClassHandle theClass,
01157          AttributeHandleSetRegionHandleSetPairVector const &
01158          theAttributeHandleSetRegionHandleSetPairVector)
01159          throw (
01160             InvalidRegionContext,
01161             RegionNotCreatedByThisFederate,
01162             InvalidRegion,
01163             AttributeNotPublished,
01164             ObjectClassNotPublished,
01165             AttributeNotDefined,
01166             ObjectClassNotDefined,
01167             SaveInProgress,
01168             RestoreInProgress,
01169             FederateNotExecutionMember,
01170             NotConnected,
01171             RTIinternalError) = 0;
01172 
01173       virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
01174          ObjectClassHandle theClass,
01175          AttributeHandleSetRegionHandleSetPairVector const &
01176          theAttributeHandleSetRegionHandleSetPairVector,
01177          std::wstring const & theObjectInstanceName)
01178          throw (
01179             ObjectInstanceNameInUse,
01180             ObjectInstanceNameNotReserved,
01181             InvalidRegionContext,
01182             RegionNotCreatedByThisFederate,
01183             InvalidRegion,
01184             AttributeNotPublished,
01185             ObjectClassNotPublished,
01186             AttributeNotDefined,
01187             ObjectClassNotDefined,
01188             SaveInProgress,
01189             RestoreInProgress,
01190             FederateNotExecutionMember,
01191             NotConnected,
01192             RTIinternalError) = 0;
01193 
01194       // 9.6
01195       virtual void associateRegionsForUpdates (
01196          ObjectInstanceHandle theObject,
01197          AttributeHandleSetRegionHandleSetPairVector const &
01198          theAttributeHandleSetRegionHandleSetPairVector)
01199          throw (
01200             InvalidRegionContext,
01201             RegionNotCreatedByThisFederate,
01202             InvalidRegion,
01203             AttributeNotDefined,
01204             ObjectInstanceNotKnown,
01205             SaveInProgress,
01206             RestoreInProgress,
01207             FederateNotExecutionMember,
01208             NotConnected,
01209             RTIinternalError) = 0;
01210 
01211       // 9.7
01212       virtual void unassociateRegionsForUpdates (
01213          ObjectInstanceHandle theObject,
01214          AttributeHandleSetRegionHandleSetPairVector const &
01215          theAttributeHandleSetRegionHandleSetPairVector)
01216          throw (
01217             RegionNotCreatedByThisFederate,
01218             InvalidRegion,
01219             AttributeNotDefined,
01220             ObjectInstanceNotKnown,
01221             SaveInProgress,
01222             RestoreInProgress,
01223             FederateNotExecutionMember,
01224             NotConnected,
01225             RTIinternalError) = 0;
01226 
01227       // 9.8
01228       virtual void subscribeObjectClassAttributesWithRegions (
01229          ObjectClassHandle theClass,
01230          AttributeHandleSetRegionHandleSetPairVector const &
01231          theAttributeHandleSetRegionHandleSetPairVector,
01232          bool active = true,
01233          std::wstring const & updateRateDesignator = L"")
01234          throw (
01235             InvalidRegionContext,
01236             RegionNotCreatedByThisFederate,
01237             InvalidRegion,
01238             AttributeNotDefined,
01239             ObjectClassNotDefined,
01240             InvalidUpdateRateDesignator,
01241             SaveInProgress,
01242             RestoreInProgress,
01243             FederateNotExecutionMember,
01244             NotConnected,
01245             RTIinternalError) = 0;
01246 
01247 
01248       // 9.9
01249       virtual void unsubscribeObjectClassAttributesWithRegions (
01250          ObjectClassHandle theClass,
01251          AttributeHandleSetRegionHandleSetPairVector const &
01252          theAttributeHandleSetRegionHandleSetPairVector)
01253          throw (
01254             RegionNotCreatedByThisFederate,
01255             InvalidRegion,
01256             AttributeNotDefined,
01257             ObjectClassNotDefined,
01258             SaveInProgress,
01259             RestoreInProgress,
01260             FederateNotExecutionMember,
01261             NotConnected,
01262             RTIinternalError) = 0;
01263 
01264       // 9.10
01265       virtual void subscribeInteractionClassWithRegions (
01266          InteractionClassHandle theClass,
01267          RegionHandleSet const & theRegionHandleSet,
01268          bool active = true)
01269          throw (
01270             FederateServiceInvocationsAreBeingReportedViaMOM,
01271             InvalidRegionContext,
01272             RegionNotCreatedByThisFederate,
01273             InvalidRegion,
01274             InteractionClassNotDefined,
01275             SaveInProgress,
01276             RestoreInProgress,
01277             FederateNotExecutionMember,
01278             NotConnected,
01279             RTIinternalError) = 0;
01280 
01281       // 9.11
01282       virtual void unsubscribeInteractionClassWithRegions (
01283          InteractionClassHandle theClass,
01284          RegionHandleSet const & theRegionHandleSet)
01285          throw (
01286             RegionNotCreatedByThisFederate,
01287             InvalidRegion,
01288             InteractionClassNotDefined,
01289             SaveInProgress,
01290             RestoreInProgress,
01291             FederateNotExecutionMember,
01292             NotConnected,
01293             RTIinternalError) = 0;
01294 
01295       // 9.12
01296       virtual void sendInteractionWithRegions (
01297          InteractionClassHandle theInteraction,
01298          ParameterHandleValueMap const & theParameterValues,
01299          RegionHandleSet const & theRegionHandleSet,
01300          VariableLengthData const & theUserSuppliedTag)
01301          throw (
01302             InvalidRegionContext,
01303             RegionNotCreatedByThisFederate,
01304             InvalidRegion,
01305             InteractionClassNotPublished,
01306             InteractionParameterNotDefined,
01307             InteractionClassNotDefined,
01308             SaveInProgress,
01309             RestoreInProgress,
01310             FederateNotExecutionMember,
01311             NotConnected,
01312             RTIinternalError) = 0;
01313 
01314       virtual MessageRetractionHandle sendInteractionWithRegions (
01315          InteractionClassHandle theInteraction,
01316          ParameterHandleValueMap const & theParameterValues,
01317          RegionHandleSet const & theRegionHandleSet,
01318          VariableLengthData const & theUserSuppliedTag,
01319          LogicalTime const & theTime)
01320          throw (
01321             InvalidLogicalTime,
01322             InvalidRegionContext,
01323             RegionNotCreatedByThisFederate,
01324             InvalidRegion,
01325             InteractionClassNotPublished,
01326             InteractionParameterNotDefined,
01327             InteractionClassNotDefined,
01328             SaveInProgress,
01329             RestoreInProgress,
01330             FederateNotExecutionMember,
01331             NotConnected,
01332             RTIinternalError) = 0;
01333 
01334       // 9.13
01335       virtual void requestAttributeValueUpdateWithRegions (
01336          ObjectClassHandle theClass,
01337          AttributeHandleSetRegionHandleSetPairVector const & theSet,
01338          VariableLengthData const & theUserSuppliedTag)
01339          throw (
01340             InvalidRegionContext,
01341             RegionNotCreatedByThisFederate,
01342             InvalidRegion,
01343             AttributeNotDefined,
01344             ObjectClassNotDefined,
01345             SaveInProgress,
01346             RestoreInProgress,
01347             FederateNotExecutionMember,
01348             NotConnected,
01349             RTIinternalError) = 0;
01350 
01352       // RTI Support Services //
01354 
01355       // 10.2
01356       virtual ResignAction getAutomaticResignDirective ()
01357          throw (
01358             FederateNotExecutionMember,
01359             NotConnected,
01360             RTIinternalError) = 0;
01361 
01362       // 10.3
01363       virtual void setAutomaticResignDirective (
01364          ResignAction resignAction)
01365          throw (
01366             InvalidResignAction,
01367             FederateNotExecutionMember,
01368             NotConnected,
01369             RTIinternalError) = 0;
01370 
01371       // 10.4
01372       virtual FederateHandle getFederateHandle (
01373          std::wstring const & theName)
01374          throw (
01375             NameNotFound,
01376             FederateNotExecutionMember,
01377             NotConnected,
01378             RTIinternalError) = 0;
01379 
01380       // 10.5
01381       virtual std::wstring getFederateName (
01382          FederateHandle theHandle)
01383          throw (
01384             InvalidFederateHandle,
01385             FederateHandleNotKnown,
01386             FederateNotExecutionMember,
01387             NotConnected,
01388             RTIinternalError) = 0;
01389 
01390       // 10.6
01391       virtual ObjectClassHandle getObjectClassHandle (
01392          std::wstring const & theName)
01393          throw (
01394             NameNotFound,
01395             FederateNotExecutionMember,
01396             NotConnected,
01397             RTIinternalError) = 0;
01398 
01399       // 10.7
01400       virtual std::wstring getObjectClassName (
01401          ObjectClassHandle theHandle)
01402          throw (
01403             InvalidObjectClassHandle,
01404             FederateNotExecutionMember,
01405             NotConnected,
01406             RTIinternalError) = 0;
01407 
01408       // 10.8
01409       virtual ObjectClassHandle getKnownObjectClassHandle (
01410          ObjectInstanceHandle theObject)
01411          throw (
01412             ObjectInstanceNotKnown,
01413             FederateNotExecutionMember,
01414             NotConnected,
01415             RTIinternalError) = 0;
01416 
01417       // 10.9
01418       virtual ObjectInstanceHandle getObjectInstanceHandle (
01419          std::wstring const & theName)
01420          throw (
01421             ObjectInstanceNotKnown,
01422             FederateNotExecutionMember,
01423             NotConnected,
01424             RTIinternalError) = 0;
01425 
01426       // 10.10
01427       virtual std::wstring getObjectInstanceName (
01428          ObjectInstanceHandle theHandle)
01429          throw (
01430             ObjectInstanceNotKnown,
01431             FederateNotExecutionMember,
01432             NotConnected,
01433             RTIinternalError) = 0;
01434 
01435       // 10.11
01436       virtual AttributeHandle getAttributeHandle (
01437          ObjectClassHandle whichClass,
01438          std::wstring const & theAttributeName)
01439          throw (
01440             NameNotFound,
01441             InvalidObjectClassHandle,
01442             FederateNotExecutionMember,
01443             NotConnected,
01444             RTIinternalError) = 0;
01445 
01446       // 10.12
01447       virtual std::wstring getAttributeName (
01448          ObjectClassHandle whichClass,
01449          AttributeHandle theHandle)
01450          throw (
01451             AttributeNotDefined,
01452             InvalidAttributeHandle,
01453             InvalidObjectClassHandle,
01454             FederateNotExecutionMember,
01455             NotConnected,
01456             RTIinternalError) = 0;
01457 
01458       // 10.13
01459       virtual double getUpdateRateValue (
01460          std::wstring const & updateRateDesignator)
01461          throw (
01462             InvalidUpdateRateDesignator,
01463             FederateNotExecutionMember,
01464             NotConnected,
01465             RTIinternalError) = 0;
01466 
01467       // 10.14
01468       virtual double getUpdateRateValueForAttribute (
01469          ObjectInstanceHandle theObject,
01470          AttributeHandle theAttribute)
01471          throw (
01472             ObjectInstanceNotKnown,
01473             AttributeNotDefined,
01474             FederateNotExecutionMember,
01475             NotConnected,
01476             RTIinternalError) = 0;
01477 
01478       // 10.15
01479       virtual InteractionClassHandle getInteractionClassHandle (
01480          std::wstring const & theName)
01481          throw (
01482             NameNotFound,
01483             FederateNotExecutionMember,
01484             NotConnected,
01485             RTIinternalError) = 0;
01486 
01487       // 10.16
01488       virtual std::wstring getInteractionClassName (
01489          InteractionClassHandle theHandle)
01490          throw (
01491             InvalidInteractionClassHandle,
01492             FederateNotExecutionMember,
01493             NotConnected,
01494             RTIinternalError) = 0;
01495 
01496       // 10.17
01497       virtual ParameterHandle getParameterHandle (
01498          InteractionClassHandle whichClass,
01499          std::wstring const & theName)
01500          throw (
01501             NameNotFound,
01502             InvalidInteractionClassHandle,
01503             FederateNotExecutionMember,
01504             NotConnected,
01505             RTIinternalError) = 0;
01506 
01507       // 10.18
01508       virtual std::wstring getParameterName (
01509          InteractionClassHandle whichClass,
01510          ParameterHandle theHandle)
01511          throw (
01512             InteractionParameterNotDefined,
01513             InvalidParameterHandle,
01514             InvalidInteractionClassHandle,
01515             FederateNotExecutionMember,
01516             NotConnected,
01517             RTIinternalError) = 0;
01518 
01519       // 10.19
01520       virtual OrderType getOrderType (
01521          std::wstring const & orderName)
01522          throw (
01523             InvalidOrderName,
01524             FederateNotExecutionMember,
01525             NotConnected,
01526             RTIinternalError) = 0;
01527 
01528       // 10.20
01529       virtual std::wstring getOrderName (
01530          OrderType orderType)
01531          throw (
01532             InvalidOrderType,
01533             FederateNotExecutionMember,
01534             NotConnected,
01535             RTIinternalError) = 0;
01536 
01537       // 10.21
01538       virtual TransportationType getTransportationType (
01539          std::wstring const & transportationName)
01540          throw (
01541             InvalidTransportationName,
01542             FederateNotExecutionMember,
01543             NotConnected,
01544             RTIinternalError) = 0;
01545 
01546       // 10.22
01547       virtual std::wstring getTransportationName (
01548          TransportationType transportationType)
01549          throw (
01550             InvalidTransportationType,
01551             FederateNotExecutionMember,
01552             NotConnected,
01553             RTIinternalError) = 0;
01554 
01555       // 10.23
01556       virtual DimensionHandleSet getAvailableDimensionsForClassAttribute (
01557          ObjectClassHandle theClass,
01558          AttributeHandle theHandle)
01559          throw (
01560             AttributeNotDefined,
01561             InvalidAttributeHandle,
01562             InvalidObjectClassHandle,
01563             FederateNotExecutionMember,
01564             NotConnected,
01565             RTIinternalError) = 0;
01566 
01567       // 10.24
01568       virtual DimensionHandleSet getAvailableDimensionsForInteractionClass (
01569          InteractionClassHandle theClass)
01570          throw (
01571             InvalidInteractionClassHandle,
01572             FederateNotExecutionMember,
01573             NotConnected,
01574             RTIinternalError) = 0;
01575 
01576       // 10.25
01577       virtual DimensionHandle getDimensionHandle (
01578          std::wstring const & theName)
01579          throw (
01580             NameNotFound,
01581             FederateNotExecutionMember,
01582             NotConnected,
01583             RTIinternalError) = 0;
01584 
01585       // 10.26
01586       virtual std::wstring getDimensionName (
01587          DimensionHandle theHandle)
01588          throw (
01589             InvalidDimensionHandle,
01590             FederateNotExecutionMember,
01591             NotConnected,
01592             RTIinternalError) = 0;
01593 
01594       // 10.27
01595       virtual unsigned long getDimensionUpperBound (
01596          DimensionHandle theHandle)
01597          throw (
01598             InvalidDimensionHandle,
01599             FederateNotExecutionMember,
01600             NotConnected,
01601             RTIinternalError) = 0;
01602 
01603       // 10.28
01604       virtual DimensionHandleSet getDimensionHandleSet (
01605          RegionHandle theRegionHandle)
01606          throw (
01607             InvalidRegion,
01608             SaveInProgress,
01609             RestoreInProgress,
01610             FederateNotExecutionMember,
01611             NotConnected,
01612             RTIinternalError) = 0;
01613 
01614       // 10.29
01615       virtual RangeBounds getRangeBounds (
01616          RegionHandle theRegionHandle,
01617          DimensionHandle theDimensionHandle)
01618          throw (
01619             RegionDoesNotContainSpecifiedDimension,
01620             InvalidRegion,
01621             SaveInProgress,
01622             RestoreInProgress,
01623             FederateNotExecutionMember,
01624             NotConnected,
01625             RTIinternalError) = 0;
01626 
01627       // 10.30
01628       virtual void setRangeBounds (
01629          RegionHandle theRegionHandle,
01630          DimensionHandle theDimensionHandle,
01631          RangeBounds const & theRangeBounds)
01632          throw (
01633             InvalidRangeBound,
01634             RegionDoesNotContainSpecifiedDimension,
01635             RegionNotCreatedByThisFederate,
01636             InvalidRegion,
01637             SaveInProgress,
01638             RestoreInProgress,
01639             FederateNotExecutionMember,
01640             NotConnected,
01641             RTIinternalError) = 0;
01642 
01643       // 10.31
01644       virtual unsigned long normalizeFederateHandle (
01645          FederateHandle theFederateHandle)
01646          throw (
01647             InvalidFederateHandle,
01648             FederateNotExecutionMember,
01649             NotConnected,
01650             RTIinternalError) = 0;
01651 
01652       // 10.32
01653       virtual unsigned long normalizeServiceGroup (
01654          ServiceGroup theServiceGroup)
01655          throw (
01656             InvalidServiceGroup,
01657             FederateNotExecutionMember,
01658             NotConnected,
01659             RTIinternalError) = 0;
01660 
01661       // 10.33
01662       virtual void enableObjectClassRelevanceAdvisorySwitch ()
01663          throw (
01664             ObjectClassRelevanceAdvisorySwitchIsOn,
01665             SaveInProgress,
01666             RestoreInProgress,
01667             FederateNotExecutionMember,
01668             NotConnected,
01669             RTIinternalError) = 0;
01670 
01671       // 10.34
01672       virtual void disableObjectClassRelevanceAdvisorySwitch ()
01673          throw (
01674             ObjectClassRelevanceAdvisorySwitchIsOff,
01675             SaveInProgress,
01676             RestoreInProgress,
01677             FederateNotExecutionMember,
01678             NotConnected,
01679             RTIinternalError) = 0;
01680 
01681       // 10.35
01682       virtual void enableAttributeRelevanceAdvisorySwitch ()
01683          throw (
01684             AttributeRelevanceAdvisorySwitchIsOn,
01685             SaveInProgress,
01686             RestoreInProgress,
01687             FederateNotExecutionMember,
01688             NotConnected,
01689             RTIinternalError) = 0;
01690 
01691       // 10.36
01692       virtual void disableAttributeRelevanceAdvisorySwitch ()
01693          throw (
01694             AttributeRelevanceAdvisorySwitchIsOff,
01695             SaveInProgress,
01696             RestoreInProgress,
01697             FederateNotExecutionMember,
01698             NotConnected,
01699             RTIinternalError) = 0;
01700 
01701       // 10.37
01702       virtual void enableAttributeScopeAdvisorySwitch ()
01703          throw (
01704             AttributeScopeAdvisorySwitchIsOn,
01705             SaveInProgress,
01706             RestoreInProgress,
01707             FederateNotExecutionMember,
01708             NotConnected,
01709             RTIinternalError) = 0;
01710 
01711       // 10.38
01712       virtual void disableAttributeScopeAdvisorySwitch ()
01713          throw (
01714             AttributeScopeAdvisorySwitchIsOff,
01715             SaveInProgress,
01716             RestoreInProgress,
01717             FederateNotExecutionMember,
01718             NotConnected,
01719             RTIinternalError) = 0;
01720 
01721       // 10.39
01722       virtual void enableInteractionRelevanceAdvisorySwitch ()
01723          throw (
01724             InteractionRelevanceAdvisorySwitchIsOn,
01725             SaveInProgress,
01726             RestoreInProgress,
01727             FederateNotExecutionMember,
01728             NotConnected,
01729             RTIinternalError) = 0;
01730 
01731       // 10.40
01732       virtual void disableInteractionRelevanceAdvisorySwitch ()
01733          throw (
01734             InteractionRelevanceAdvisorySwitchIsOff,
01735             SaveInProgress,
01736             RestoreInProgress,
01737             FederateNotExecutionMember,
01738             NotConnected,
01739             RTIinternalError) = 0;
01740 
01741       // 10.41
01742       virtual bool evokeCallback (
01743          double approximateMinimumTimeInSeconds)
01744          throw (
01745             CallNotAllowedFromWithinCallback,
01746             RTIinternalError) = 0;
01747 
01748       // 10.42
01749       virtual bool evokeMultipleCallbacks (
01750          double approximateMinimumTimeInSeconds,
01751          double approximateMaximumTimeInSeconds)
01752          throw (
01753             CallNotAllowedFromWithinCallback,
01754             RTIinternalError) = 0;
01755 
01756       // 10.43
01757       virtual void enableCallbacks ()
01758          throw (
01759             SaveInProgress,
01760             RestoreInProgress,
01761             RTIinternalError) = 0;
01762 
01763       // 10.44
01764       virtual void disableCallbacks ()
01765          throw (
01766             SaveInProgress,
01767             RestoreInProgress,
01768             RTIinternalError) = 0;
01769 
01770       // API-specific services
01771 
01772       // Return instance of time factory being used by the federation
01773       virtual std::auto_ptr<LogicalTimeFactory> getTimeFactory () const
01774          throw (
01775             FederateNotExecutionMember,
01776             NotConnected,
01777             RTIinternalError) = 0;
01778 
01779       // Decode handles
01780       virtual FederateHandle decodeFederateHandle (
01781          VariableLengthData const & encodedValue) const
01782          throw (
01783             CouldNotDecode,
01784             FederateNotExecutionMember,
01785             NotConnected,
01786             RTIinternalError) = 0;
01787 
01788       virtual ObjectClassHandle decodeObjectClassHandle (
01789          VariableLengthData const & encodedValue) const
01790          throw (
01791             CouldNotDecode,
01792             FederateNotExecutionMember,
01793             NotConnected,
01794             RTIinternalError) = 0;
01795 
01796       virtual InteractionClassHandle decodeInteractionClassHandle (
01797          VariableLengthData const & encodedValue) const
01798          throw (
01799             CouldNotDecode,
01800             FederateNotExecutionMember,
01801             NotConnected,
01802             RTIinternalError) = 0;
01803 
01804       virtual ObjectInstanceHandle decodeObjectInstanceHandle (
01805          VariableLengthData const & encodedValue) const
01806          throw (
01807             CouldNotDecode,
01808             FederateNotExecutionMember,
01809             NotConnected,
01810             RTIinternalError) = 0;
01811 
01812       virtual AttributeHandle decodeAttributeHandle (
01813          VariableLengthData const & encodedValue) const
01814          throw (
01815             CouldNotDecode,
01816             FederateNotExecutionMember,
01817             NotConnected,
01818             RTIinternalError) = 0;
01819 
01820       virtual ParameterHandle decodeParameterHandle (
01821          VariableLengthData const & encodedValue) const
01822          throw (
01823             CouldNotDecode,
01824             FederateNotExecutionMember,
01825             NotConnected,
01826             RTIinternalError) = 0;
01827 
01828       virtual DimensionHandle decodeDimensionHandle (
01829          VariableLengthData const & encodedValue) const
01830          throw (
01831             CouldNotDecode,
01832             FederateNotExecutionMember,
01833             NotConnected,
01834             RTIinternalError) = 0;
01835 
01836       virtual MessageRetractionHandle decodeMessageRetractionHandle (
01837          VariableLengthData const & encodedValue) const
01838          throw (
01839             CouldNotDecode,
01840             FederateNotExecutionMember,
01841             NotConnected,
01842             RTIinternalError) = 0;
01843 
01844       virtual RegionHandle decodeRegionHandle (
01845          VariableLengthData const & encodedValue) const
01846          throw (
01847             CouldNotDecode,
01848             FederateNotExecutionMember,
01849             NotConnected,
01850             RTIinternalError) = 0;
01851 
01852 public:
01853 
01854    static RTI::RTIambassador * create();
01855 
01856 protected:
01857 
01858    std::auto_ptr<RTIambassador>  myRtiAmb;
01859    FederateAmbassador           *myFedAmb;
01860 };
01861 
01862 #endif 
01863 #endif
01864 
01865 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)