VR-Link API Documentation for DIS
vrlFedAmb1516e.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 
00007 #pragma once
00008  
00012 
00013 #if DtHLA
00014 #if DtHLA_1516_EVOLVED
00015 
00016 
00017 #include "callbacks.h"
00018 
00019 #include "rtiNamespace.h"
00020 #include "nullFedAmb1516e.h"
00021 #include <list>
00022 
00023 typedef void (*DtSynchPointCb)(
00024    const char* label,
00025    void* usr);
00026 
00027 typedef void (*DtAnnounceSynchPointCb)(
00028    const char* label,
00029    const RTI::VariableLengthData& tag,
00030    void* usr);
00031 
00032 class DT_DLL_VL DtInteractionManager;
00033 class DT_DLL_VL DtHlaObjectManager;
00034 
00038 class DT_DLL_VL DtVrlFederateAmbassador : public DtNullFederateAmbassador
00039 {
00040    struct DtScopeChangeCallbackData
00041    {
00042       DtVrlFederateAmbassador* fedAmb;
00043       RTI::ObjectInstanceHandle        handle;
00044    };
00045 
00046 public:
00048    DtVrlFederateAmbassador()
00049       throw (RTI::FederateInternalError);
00051    virtual ~DtVrlFederateAmbassador()
00052       throw( );
00053 
00054 protected:
00056    DtVrlFederateAmbassador( const DtVrlFederateAmbassador& src );
00057 
00059    DtVrlFederateAmbassador& operator=(const DtVrlFederateAmbassador& src );
00060 
00061 public:
00064    virtual void init( DtExerciseConn* exConn,
00065       DtHlaObjectManager* hlaObjMgr,
00066       DtInteractionManager* interMgr );
00067 
00068 public:
00070    static DtVrlFederateAmbassador* create();
00071 
00072 public:
00075    virtual void addReflectAttributeValuesCb( 
00076       RTI::ObjectInstanceHandle id, DtReflectAttributeValuesCb cb, void* usr );
00077    virtual void removeReflectAttributeValuesCb( 
00078       RTI::ObjectInstanceHandle id, DtReflectAttributeValuesCb cb, void* usr );
00079 
00082    virtual void addDiscoverObjectCb( RTI::ObjectClassHandle hand,
00083       DtDiscoverObjectCb cb, void* usr );
00084    virtual void removeDiscoverObjectCb( RTI::ObjectClassHandle hand,
00085       DtDiscoverObjectCb cb, void* usr );
00086 
00089    virtual void addRemoveObjectCb( RTI::ObjectInstanceHandle id,
00090       DtRemoveObjectCb cb, void* usr );
00091    virtual void removeRemoveObjectCb( RTI::ObjectInstanceHandle id,
00092       DtRemoveObjectCb cb, void* usr );
00093 
00096    virtual void addStartRegCb( RTI::ObjectClassHandle hand,
00097       DtStartRegCb cb, void* usr );
00098    virtual void removeStartRegCb( RTI::ObjectClassHandle hand,
00099       DtStartRegCb cb, void* usr );
00100 
00103    virtual void addStopRegCb( RTI::ObjectClassHandle hand,
00104       DtStopRegCb cb, void* usr );
00105    virtual void removeStopRegCb( RTI::ObjectClassHandle hand,
00106       DtStopRegCb cb, void* usr );
00107 
00110    virtual void addUpdatesOnCb( RTI::ObjectInstanceHandle hand,
00111       DtUpdatesOnCb cb, void* usr );
00112    virtual void removeUpdatesOnCb( RTI::ObjectInstanceHandle hand,
00113       DtUpdatesOnCb cb, void* usr );
00114 
00117    virtual void addUpdatesOffCb( RTI::ObjectInstanceHandle hand,
00118       DtUpdatesOffCb cb, void* usr );
00119    virtual void removeUpdatesOffCb( RTI::ObjectInstanceHandle hand,
00120       DtUpdatesOffCb cb, void* usr );
00121 
00124    virtual void addStartInteractionsCb( RTI::InteractionClassHandle hand,
00125       DtStartStopInterCb cb, void* usr );
00126    virtual void removeStartInteractionsCb( RTI::InteractionClassHandle hand,
00127       DtStartStopInterCb cb, void* usr );
00128 
00131    virtual void addStopInteractionsCb( RTI::InteractionClassHandle hand,
00132       DtStartStopInterCb cb, void* usr );
00133    virtual void removeStopInteractionsCb( RTI::InteractionClassHandle hand,
00134       DtStartStopInterCb cb, void* usr );
00135 
00138    virtual void addReceiveInteractionCb( RTI::InteractionClassHandle hand,
00139       DtReceiveInteractionCb cb, void* usr, DtDDMRegionSP region = DtDDMRegionSP());
00140    virtual void removeReceiveInteractionCb( RTI::InteractionClassHandle hand,
00141       DtReceiveInteractionCb cb, void* usr, DtDDMRegionSP region = DtDDMRegionSP() );
00142    
00145    virtual void addTimeAdvanceGrantCb( DtFedTimeCb cb, void* usr );
00146    virtual void removeTimeAdvanceGrantCb( DtFedTimeCb cb, void* usr );
00147 
00150    virtual void addTimeRegulationEnabledCb( DtFedTimeCb cb, void* usr );
00151    virtual void removeTimeRegulationEnabledCb( DtFedTimeCb cb, void* usr );
00152 
00155    virtual void addTimeConstrainedEnabledCb( DtFedTimeCb cb, void* usr );
00156    virtual void removeTimeConstrainedEnabledCb( DtFedTimeCb cb, void* usr );
00157 
00160    virtual void addNameReservationSucceeded( DtReserveNameCb cb, void* usr );
00161    virtual void removeNameReservationSucceeded( DtReserveNameCb cb, void* usr );
00162 
00165    virtual void addNameReservationFailed( DtReserveNameCb cb, void* usr );
00166    virtual void removeNameReservationFailed( DtReserveNameCb cb, void* usr );
00167 
00168 
00171    virtual void addMultipleNameReservationSucceeded( DtReserveMultipleNamesCb cb, void* usr );
00172    virtual void removeNameReservationSucceeded( DtReserveMultipleNamesCb, void* usr );
00173 
00176    virtual void addMultipleNameReservationFailed( DtReserveMultipleNamesCb cb, void* usr );
00177    virtual void removeMultipleNameReservationFailed( DtReserveMultipleNamesCb, void* usr );
00178 
00180    virtual void addSynchPointRegSucceededCb(const DtString& label,
00181       DtSynchPointCb func, void* usr);
00182    virtual void addSynchPointRegSucceededCb(DtSynchPointCb func, 
00183       void* usr);
00184 
00185    virtual void removeSynchPointRegSucceededCb(const DtString& label,
00186       DtSynchPointCb func, void* usr);
00187    virtual void removeSynchPointRegSucceededCb(DtSynchPointCb func, 
00188       void* usr);
00189 
00190    virtual void addSynchPointRegFailedCb(const DtString& label,
00191       DtSynchPointCb func, void* usr);
00192    virtual void addSynchPointRegFailedCb(DtSynchPointCb func, 
00193       void* usr);
00194 
00195    virtual void removeSynchPointRegFailedCb(const DtString& label,
00196       DtSynchPointCb func, void* usr);
00197    virtual void removeSynchPointRegFailedCb(DtSynchPointCb func, 
00198       void* usr);
00199 
00200    virtual void addFederationSynchedCb(const DtString& label,
00201       DtSynchPointCb func, void* usr);
00202    virtual void addFederationSynchedCb(DtSynchPointCb func, 
00203       void* usr);
00204 
00205    virtual void removeFederationSynchedCb(const DtString& label,
00206       DtSynchPointCb func, void* usr);
00207    virtual void removeFederationSynchedCb(DtSynchPointCb func, 
00208       void* usr);
00209 
00210    virtual void addAnnounceSynchPointCb(const DtString& label,
00211       DtAnnounceSynchPointCb func, void* usr);
00212    virtual void addAnnounceSynchPointCb(DtAnnounceSynchPointCb func, 
00213       void* usr);
00214 
00215    virtual void removeAnnounceSynchPointCb(const DtString& label,
00216       DtAnnounceSynchPointCb func, void* usr);
00217    virtual void removeAnnounceSynchPointCb(DtAnnounceSynchPointCb func, 
00218       void* usr);
00219 
00220    virtual void setRemoveObjectOnAttOutOfScope(bool remove);
00221    virtual bool removeObjectOnAttOutOfScope() const;
00222 
00223    virtual void addConnectionLostCb( DtConnectionLostCb func, void* usr );
00224    virtual void removeConnectionLostCb(DtConnectionLostCb func, void* usr );
00225 
00226 #if DtHLA_1516_EVOLVED
00227 
00228    virtual DtString getFederateNameFromHandle(const RTI::FederateHandle&) const;
00229 #endif
00230 
00231 
00232 
00233 protected:
00235    struct DtGeneralSynchPointCbInfo
00236    {
00237       DtSynchPointCb cbFunction;
00238       void* userData;
00239    };
00240 
00241    struct DtLabelledSynchPointCbInfo
00242    {
00243       DtString label;
00244       DtSynchPointCb cbFunction;
00245       void* userData;
00246    };
00247 
00248    struct DtGeneralAnnounceCbInfo
00249    {
00250       DtAnnounceSynchPointCb cbFunction;
00251       void* userData;
00252    };
00253 
00254    struct DtLabelledAnnounceCbInfo
00255    {
00256       DtString label;
00257       DtAnnounceSynchPointCb cbFunction;
00258       void* userData;
00259    };
00260 
00261    static void attributesOutOfScopeCb(void* usr);
00262 
00263    virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
00264 
00265    DtExerciseConn*       myExConn;
00266    DtInteractionManager* myInteractionManager;
00267    DtHlaObjectManager*   myHlaObjectManager;
00268 
00269    DtReflectAttributeValuesCbList myRavCbList;
00270    DtUpdatesOnCbList              myUpdatesOnCbList;
00271    DtUpdatesOffCbList             myUpdatesOffCbList;
00272    DtStartRegCbList               myStartRegCbList;
00273    DtStopRegCbList                myStopRegCbList;
00274    DtStartStopInterCbList         myStartIntCbList;
00275    DtStartStopInterCbList         myStopIntCbList;
00276    DtFedTimeCbList                myTimeAdvanceGrantCbList;
00277    DtFedTimeCbList                myRegulationEnabledCbList;
00278    DtFedTimeCbList                myConstrainedEnabledCbList;
00279    DtConnectionLostCbList         myConnectionLostCbList;
00280    DtReserveNameCbList            myNameReservationSucceededCbList;
00281    DtReserveNameCbList            myNameReservationFailedCbList;
00282 
00283    DtReserveMultipleNamesCbList   myMultipleNamesReservationSucceededCbList;
00284    DtReserveMultipleNamesCbList   myMultipleNamesReservationFailedCbList;
00285 
00287    std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
00288    std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
00289    std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
00290    std::list<DtLabelledAnnounceCbInfo>   myLabAnnounceSynchPointCbList;
00291 
00292    std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
00293    std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
00294    std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
00295    std::list<DtGeneralAnnounceCbInfo>     myAnnounceSynchPointCbList;
00296 
00297    bool myRemoveObjectOnAttOutOfScope;
00298 
00300    virtual void applyFedsSynchedCallbacks(const DtString& label);
00301    virtual void applyRegistrationSucceededCallbacks(const DtString& label);
00302    virtual void applyRegistrationFailedCallbacks(const DtString& label);
00303 
00305    virtual bool applyAnnounceCallbacks(const DtString& label, const RTI::VariableLengthData& tag);
00306 
00307 
00308 public:
00309 
00310       // 4.4
00311       virtual void connectionLost (
00312          std::wstring const & faultDescription)
00313          throw (
00314             RTI::FederateInternalError);
00315 
00316       // 4.8
00317       virtual void reportFederationExecutions (
00318          RTI::FederationExecutionInformationVector const &
00319          theFederationExecutionInformationList)
00320          throw (
00321             RTI::FederateInternalError);
00322 
00323       // 4.12
00324       virtual void synchronizationPointRegistrationSucceeded (
00325          std::wstring const & label)
00326          throw (
00327             RTI::FederateInternalError);
00328 
00329       virtual void synchronizationPointRegistrationFailed (
00330          std::wstring const & label,
00331          RTI::SynchronizationPointFailureReason reason)
00332          throw (
00333             RTI::FederateInternalError);
00334 
00335       // 4.13
00336       virtual void announceSynchronizationPoint (
00337          std::wstring  const & label,
00338          RTI::VariableLengthData const & theUserSuppliedTag)
00339          throw (
00340             RTI::FederateInternalError);
00341 
00342       // 4.15
00343       virtual void federationSynchronized (
00344          std::wstring const & label,
00345          RTI::FederateHandleSet const& failedToSyncSet)
00346          throw (
00347             RTI::FederateInternalError);
00348 
00349       // 4.17
00350       virtual void initiateFederateSave (
00351          std::wstring const & label)
00352          throw (
00353             RTI::FederateInternalError);
00354 
00355       virtual void initiateFederateSave (
00356          std::wstring const & label,
00357          RTI::LogicalTime const & theTime)
00358          throw (
00359             RTI::FederateInternalError);
00360 
00361       // 4.20
00362       virtual void federationSaved ()
00363          throw (
00364             RTI::FederateInternalError);
00365 
00366       virtual void federationNotSaved (
00367          RTI::SaveFailureReason theSaveFailureReason)
00368          throw (
00369             RTI::FederateInternalError);
00370 
00371 
00372       // 4.23
00373       virtual void federationSaveStatusResponse (
00374          RTI::FederateHandleSaveStatusPairVector const &
00375          theFederateStatusVector)
00376          throw (
00377             RTI::FederateInternalError);
00378 
00379       // 4.25
00380       virtual void requestFederationRestoreSucceeded (
00381          std::wstring const & label)
00382          throw (
00383             RTI::FederateInternalError);
00384 
00385       virtual void requestFederationRestoreFailed (
00386          std::wstring const & label)
00387          throw (
00388             RTI::FederateInternalError);
00389 
00390       // 4.26
00391       virtual void federationRestoreBegun ()
00392          throw (
00393             RTI::FederateInternalError);
00394 
00395       // 4.27
00396       virtual void initiateFederateRestore (
00397          std::wstring const & label,
00398          std::wstring const & federateName,
00399          RTI::FederateHandle handle)
00400          throw (
00401             RTI::FederateInternalError);
00402 
00403       // 4.29
00404       virtual void federationRestored ()
00405          throw (
00406             RTI::FederateInternalError);
00407 
00408       virtual void federationNotRestored (
00409          RTI::RestoreFailureReason theRestoreFailureReason)
00410          throw (
00411             RTI::FederateInternalError);
00412 
00413       // 4.32
00414       virtual void federationRestoreStatusResponse (
00415          RTI::FederateRestoreStatusVector const &
00416          theFederateRestoreStatusVector)
00417          throw (
00418             RTI::FederateInternalError);
00419 
00421       // Declaration Management Services //
00423 
00424       // 5.10
00425       virtual void startRegistrationForObjectClass (
00426          RTI::ObjectClassHandle theClass)
00427          throw (
00428             RTI::FederateInternalError);
00429 
00430       // 5.11
00431       virtual void stopRegistrationForObjectClass (
00432          RTI::ObjectClassHandle theClass)
00433          throw (
00434             RTI::FederateInternalError);
00435 
00436       // 5.12
00437       virtual void turnInteractionsOn (
00438          RTI::InteractionClassHandle theHandle)
00439          throw (
00440             RTI::FederateInternalError);
00441 
00442       // 5.13
00443       virtual void turnInteractionsOff (
00444          RTI::InteractionClassHandle theHandle)
00445          throw (
00446             RTI::FederateInternalError);
00447 
00449       // Object Management Services //
00451 
00452       // 6.3
00453       virtual void objectInstanceNameReservationSucceeded (
00454          std::wstring const & theObjectInstanceName)
00455          throw (
00456             RTI::FederateInternalError);
00457 
00458       virtual void objectInstanceNameReservationFailed (
00459          std::wstring const & theObjectInstanceName)
00460          throw (
00461             RTI::FederateInternalError);
00462 
00463       // 6.6
00464       virtual void multipleObjectInstanceNameReservationSucceeded (
00465          std::set<std::wstring> const & theObjectInstanceNames)
00466          throw (
00467             RTI::FederateInternalError);
00468 
00469       virtual void multipleObjectInstanceNameReservationFailed (
00470          std::set<std::wstring> const & theObjectInstanceNames)
00471          throw (
00472             RTI::FederateInternalError);
00473 
00474 
00475       // 6.9
00476       virtual void discoverObjectInstance (
00477          RTI::ObjectInstanceHandle theObject,
00478          RTI::ObjectClassHandle theObjectClass,
00479          std::wstring const & theObjectInstanceName)
00480          throw (
00481             RTI::FederateInternalError);
00482 
00483       virtual void discoverObjectInstance (
00484          RTI::ObjectInstanceHandle theObject,
00485          RTI::ObjectClassHandle theObjectClass,
00486          std::wstring const & theObjectInstanceName,
00487          RTI::FederateHandle producingFederate)
00488          throw (
00489             RTI::FederateInternalError);
00490 
00491       // 6.11
00492       virtual void reflectAttributeValues (
00493          RTI::ObjectInstanceHandle theObject,
00494          RTI::AttributeHandleValueMap const & theAttributeValues,
00495          RTI::VariableLengthData const & theUserSuppliedTag,
00496          RTI::OrderType sentOrder,
00497          RTI::TransportationType theType,
00498          RTI::SupplementalReflectInfo theReflectInfo)
00499          throw (
00500             RTI::FederateInternalError);
00501 
00502       virtual void reflectAttributeValues (
00503          RTI::ObjectInstanceHandle theObject,
00504          RTI::AttributeHandleValueMap const & theAttributeValues,
00505          RTI::VariableLengthData const & theUserSuppliedTag,
00506          RTI::OrderType sentOrder,
00507          RTI::TransportationType theType,
00508          RTI::LogicalTime const & theTime,
00509          RTI::OrderType receivedOrder,
00510          RTI::SupplementalReflectInfo theReflectInfo)
00511          throw (
00512             RTI::FederateInternalError);
00513 
00514       virtual void reflectAttributeValues (
00515          RTI::ObjectInstanceHandle theObject,
00516          RTI::AttributeHandleValueMap const & theAttributeValues,
00517          RTI::VariableLengthData const & theUserSuppliedTag,
00518          RTI::OrderType sentOrder,
00519          RTI::TransportationType theType,
00520          RTI::LogicalTime const & theTime,
00521          RTI::OrderType receivedOrder,
00522          RTI::MessageRetractionHandle theHandle,
00523          RTI::SupplementalReflectInfo theReflectInfo)
00524          throw (
00525             RTI::FederateInternalError);
00526 
00527       // 6.13
00528       virtual void receiveInteraction (
00529          RTI::InteractionClassHandle theInteraction,
00530          RTI::ParameterHandleValueMap const & theParameterValues,
00531          RTI::VariableLengthData const & theUserSuppliedTag,
00532          RTI::OrderType sentOrder,
00533          RTI::TransportationType theType,
00534          RTI::SupplementalReceiveInfo theReceiveInfo)
00535          throw (
00536             RTI::FederateInternalError);
00537 
00538       virtual void receiveInteraction (
00539          RTI::InteractionClassHandle theInteraction,
00540          RTI::ParameterHandleValueMap const & theParameterValues,
00541          RTI::VariableLengthData const & theUserSuppliedTag,
00542          RTI::OrderType sentOrder,
00543          RTI::TransportationType theType,
00544          RTI::LogicalTime const & theTime,
00545          RTI::OrderType receivedOrder,
00546          RTI::SupplementalReceiveInfo theReceiveInfo)
00547          throw (
00548             RTI::FederateInternalError);
00549 
00550       virtual void receiveInteraction (
00551          RTI::InteractionClassHandle theInteraction,
00552          RTI::ParameterHandleValueMap const & theParameterValues,
00553          RTI::VariableLengthData const & theUserSuppliedTag,
00554          RTI::OrderType sentOrder,
00555          RTI::TransportationType theType,
00556          RTI::LogicalTime const & theTime,
00557          RTI::OrderType receivedOrder,
00558          RTI::MessageRetractionHandle theHandle,
00559          RTI::SupplementalReceiveInfo theReceiveInfo)
00560          throw (
00561             RTI::FederateInternalError);
00562 
00563       // 6.15
00564       virtual void removeObjectInstance (
00565          RTI::ObjectInstanceHandle theObject,
00566          RTI::VariableLengthData const & theUserSuppliedTag,
00567          RTI::OrderType sentOrder,
00568          RTI::SupplementalRemoveInfo theRemoveInfo)
00569          throw (
00570             RTI::FederateInternalError);
00571 
00572       virtual void removeObjectInstance (
00573          RTI::ObjectInstanceHandle theObject,
00574          RTI::VariableLengthData const & theUserSuppliedTag,
00575          RTI::OrderType sentOrder,
00576          RTI::LogicalTime const & theTime,
00577          RTI::OrderType receivedOrder,
00578          RTI::SupplementalRemoveInfo theRemoveInfo)
00579          throw (
00580             RTI::FederateInternalError);
00581 
00582       virtual void removeObjectInstance (
00583          RTI::ObjectInstanceHandle theObject,
00584          RTI::VariableLengthData const & theUserSuppliedTag,
00585          RTI::OrderType sentOrder,
00586          RTI::LogicalTime const & theTime,
00587          RTI::OrderType receivedOrder,
00588          RTI::MessageRetractionHandle theHandle,
00589          RTI::SupplementalRemoveInfo theRemoveInfo)
00590          throw (
00591             RTI::FederateInternalError);
00592 
00593       // 6.17
00594       virtual void attributesInScope (
00595          RTI::ObjectInstanceHandle theObject,
00596          RTI::AttributeHandleSet const & theAttributes)
00597          throw (
00598             RTI::FederateInternalError);
00599 
00600       // 6.18
00601       virtual void attributesOutOfScope (
00602          RTI::ObjectInstanceHandle theObject,
00603          RTI::AttributeHandleSet const & theAttributes)
00604          throw (
00605             RTI::FederateInternalError);
00606 
00607       // 6.20
00608       virtual void provideAttributeValueUpdate (
00609          RTI::ObjectInstanceHandle theObject,
00610          RTI::AttributeHandleSet const & theAttributes,
00611          RTI::VariableLengthData const & theUserSuppliedTag)
00612          throw (
00613             RTI::FederateInternalError);
00614 
00615       // 6.21
00616       virtual void turnUpdatesOnForObjectInstance (
00617          RTI::ObjectInstanceHandle theObject,
00618          RTI::AttributeHandleSet const & theAttributes)
00619          throw (
00620             RTI::FederateInternalError);
00621 
00622       virtual void turnUpdatesOnForObjectInstance (
00623          RTI::ObjectInstanceHandle theObject,
00624          RTI::AttributeHandleSet const & theAttributes,
00625          std::wstring const & updateRateDesignator)
00626          throw (
00627             RTI::FederateInternalError);
00628 
00629       // 6.22
00630       virtual void turnUpdatesOffForObjectInstance (
00631          RTI::ObjectInstanceHandle theObject,
00632          RTI::AttributeHandleSet const & theAttributes)
00633          throw (
00634             RTI::FederateInternalError);
00635 
00636       // 6.24
00637       virtual void confirmAttributeTransportationTypeChange (
00638          RTI::ObjectInstanceHandle theObject,
00639          RTI::AttributeHandleSet theAttributes,
00640          RTI::TransportationType theTransportation)
00641          throw (
00642             RTI::FederateInternalError);
00643 
00644       // 6.26
00645       virtual void reportAttributeTransportationType (
00646          RTI::ObjectInstanceHandle theObject,
00647          RTI::AttributeHandle theAttribute,
00648          RTI::TransportationType theTransportation)
00649          throw (
00650             RTI::FederateInternalError);
00651 
00652       // 6.28
00653       virtual void confirmInteractionTransportationTypeChange (
00654          RTI::InteractionClassHandle theInteraction,
00655          RTI::TransportationType theTransportation)
00656          throw (
00657             RTI::FederateInternalError);
00658 
00659       // 6.30
00660       virtual void reportInteractionTransportationType (
00661          RTI::FederateHandle federateHandle,
00662          RTI::InteractionClassHandle theInteraction,
00663          RTI::TransportationType  theTransportation)
00664          throw (
00665             RTI::FederateInternalError);
00666 
00667 
00669       // Ownership Management Services //
00671 
00672       // 7.4
00673       virtual void requestAttributeOwnershipAssumption (
00674          RTI::ObjectInstanceHandle theObject,
00675          RTI::AttributeHandleSet const & offeredAttributes,
00676          RTI::VariableLengthData const & theUserSuppliedTag)
00677          throw (
00678             RTI::FederateInternalError);
00679 
00680       // 7.5
00681       virtual void requestDivestitureConfirmation (
00682          RTI::ObjectInstanceHandle theObject,
00683          RTI::AttributeHandleSet const & releasedAttributes)
00684          throw (
00685             RTI::FederateInternalError);
00686 
00687       // 7.7
00688       virtual void attributeOwnershipAcquisitionNotification (
00689          RTI::ObjectInstanceHandle theObject,
00690          RTI::AttributeHandleSet const & securedAttributes,
00691          RTI::VariableLengthData const & theUserSuppliedTag)
00692          throw (
00693             RTI::FederateInternalError);
00694 
00695       // 7.10
00696       virtual void attributeOwnershipUnavailable (
00697          RTI::ObjectInstanceHandle theObject,
00698          RTI::AttributeHandleSet const & theAttributes)
00699          throw (
00700             RTI::FederateInternalError);
00701 
00702       // 7.11
00703       virtual void requestAttributeOwnershipRelease (
00704          RTI::ObjectInstanceHandle theObject,
00705          RTI::AttributeHandleSet const & candidateAttributes,
00706          RTI::VariableLengthData const & theUserSuppliedTag)
00707          throw (
00708             RTI::FederateInternalError);
00709 
00710       // 7.16
00711       virtual void confirmAttributeOwnershipAcquisitionCancellation (
00712          RTI::ObjectInstanceHandle theObject,
00713          RTI::AttributeHandleSet const & theAttributes)
00714          throw (
00715             RTI::FederateInternalError);
00716 
00717       // 7.18
00718       virtual void informAttributeOwnership (
00719          RTI::ObjectInstanceHandle theObject,
00720          RTI::AttributeHandle theAttribute,
00721          RTI::FederateHandle theOwner)
00722          throw (
00723             RTI::FederateInternalError);
00724 
00725       virtual void attributeIsNotOwned (
00726          RTI::ObjectInstanceHandle theObject,
00727          RTI::AttributeHandle theAttribute)
00728          throw (
00729             RTI::FederateInternalError);
00730 
00731       virtual void attributeIsOwnedByRTI (
00732          RTI::ObjectInstanceHandle theObject,
00733          RTI::AttributeHandle theAttribute)
00734          throw (
00735             RTI::FederateInternalError);
00736 
00738       // Time Management Services //
00740 
00741       // 8.3
00742       virtual void timeRegulationEnabled (
00743          RTI::LogicalTime const & theFederateTime)
00744          throw (
00745             RTI::FederateInternalError);
00746 
00747       // 8.6
00748       virtual void timeConstrainedEnabled (
00749          RTI::LogicalTime const & theFederateTime)
00750          throw (
00751             RTI::FederateInternalError);
00752 
00753       // 8.13
00754       virtual void timeAdvanceGrant (
00755          RTI::LogicalTime const & theTime)
00756          throw (
00757             RTI::FederateInternalError);
00758 
00759       // 8.22
00760       virtual void requestRetraction (
00761          RTI::MessageRetractionHandle theHandle)
00762          throw (
00763             RTI::FederateInternalError);
00764 
00765 };
00766   
00767 #endif
00768 #endif //! RTI_FederateAmbassador_h
00769 
00770 

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)