VR-Link API Documentation for HLA 1.3
vrlFedAmb1516.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 #pragma once
00007  
00011 
00012 #if DtHLA
00013 #if DtHLA_1516
00014 #ifndef DtHLA_1516_EVOLVED
00015 
00016 
00017 #include "callbacks.h"
00018 
00019 #include "rtiNamespace.h"
00020 #include "nullFedAmb1516.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 
00169    virtual void addSynchPointRegSucceededCb(const DtString& label,
00170       DtSynchPointCb func, void* usr);
00171    virtual void addSynchPointRegSucceededCb(DtSynchPointCb func, 
00172       void* usr);
00173 
00174    virtual void removeSynchPointRegSucceededCb(const DtString& label,
00175       DtSynchPointCb func, void* usr);
00176    virtual void removeSynchPointRegSucceededCb(DtSynchPointCb func, 
00177       void* usr);
00178 
00179    virtual void addSynchPointRegFailedCb(const DtString& label,
00180       DtSynchPointCb func, void* usr);
00181    virtual void addSynchPointRegFailedCb(DtSynchPointCb func, 
00182       void* usr);
00183 
00184    virtual void removeSynchPointRegFailedCb(const DtString& label,
00185       DtSynchPointCb func, void* usr);
00186    virtual void removeSynchPointRegFailedCb(DtSynchPointCb func, 
00187       void* usr);
00188 
00189    virtual void addFederationSynchedCb(const DtString& label,
00190       DtSynchPointCb func, void* usr);
00191    virtual void addFederationSynchedCb(DtSynchPointCb func, 
00192       void* usr);
00193 
00194    virtual void removeFederationSynchedCb(const DtString& label,
00195       DtSynchPointCb func, void* usr);
00196    virtual void removeFederationSynchedCb(DtSynchPointCb func, 
00197       void* usr);
00198 
00199    virtual void addAnnounceSynchPointCb(const DtString& label,
00200       DtAnnounceSynchPointCb func, void* usr);
00201    virtual void addAnnounceSynchPointCb(DtAnnounceSynchPointCb func, 
00202       void* usr);
00203 
00204    virtual void removeAnnounceSynchPointCb(const DtString& label,
00205       DtAnnounceSynchPointCb func, void* usr);
00206    virtual void removeAnnounceSynchPointCb(DtAnnounceSynchPointCb func, 
00207       void* usr);
00208 
00209    virtual void setRemoveObjectOnAttOutOfScope(bool remove);
00210    virtual bool removeObjectOnAttOutOfScope() const;
00211 
00212 
00213 
00214 protected:
00216    struct DtGeneralSynchPointCbInfo
00217    {
00218       DtSynchPointCb cbFunction;
00219       void* userData;
00220    };
00221 
00222    struct DtLabelledSynchPointCbInfo
00223    {
00224       DtString label;
00225       DtSynchPointCb cbFunction;
00226       void* userData;
00227    };
00228 
00229    struct DtGeneralAnnounceCbInfo
00230    {
00231       DtAnnounceSynchPointCb cbFunction;
00232       void* userData;
00233    };
00234 
00235    struct DtLabelledAnnounceCbInfo
00236    {
00237       DtString label;
00238       DtAnnounceSynchPointCb cbFunction;
00239       void* userData;
00240    };
00241 
00242    static void attributesOutOfScopeCb(void* usr);
00243 
00244    virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
00245 
00246    DtExerciseConn*       myExConn;
00247    DtInteractionManager* myInteractionManager;
00248    DtHlaObjectManager*   myHlaObjectManager;
00249 
00250    DtReflectAttributeValuesCbList myRavCbList;
00251    DtUpdatesOnCbList              myUpdatesOnCbList;
00252    DtUpdatesOffCbList             myUpdatesOffCbList;
00253    DtStartRegCbList               myStartRegCbList;
00254    DtStopRegCbList                myStopRegCbList;
00255    DtStartStopInterCbList         myStartIntCbList;
00256    DtStartStopInterCbList         myStopIntCbList;
00257    DtFedTimeCbList                myTimeAdvanceGrantCbList;
00258    DtFedTimeCbList                myRegulationEnabledCbList;
00259    DtFedTimeCbList                myConstrainedEnabledCbList;
00260    DtReserveNameCbList            myNameReservationSucceededCbList;
00261    DtReserveNameCbList            myNameReservationFailedCbList;
00262 
00264    std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
00265    std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
00266    std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
00267    std::list<DtLabelledAnnounceCbInfo>   myLabAnnounceSynchPointCbList;
00268 
00269    std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
00270    std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
00271    std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
00272    std::list<DtGeneralAnnounceCbInfo>     myAnnounceSynchPointCbList;
00273 
00274    bool myRemoveObjectOnAttOutOfScope;
00275 
00277    virtual void applyFedsSynchedCallbacks(const DtString& label);
00278    virtual void applyRegistrationSucceededCallbacks(const DtString& label);
00279    virtual void applyRegistrationFailedCallbacks(const DtString& label);
00280 
00282    virtual bool applyAnnounceCallbacks(const DtString& label, const RTI::VariableLengthData& tag);
00283 
00284 
00285 public:
00286 
00288    virtual void synchronizationPointRegistrationSucceeded(
00289       std::wstring const & label)
00290       throw (RTI::FederateInternalError);
00291 
00292    virtual void synchronizationPointRegistrationFailed(
00293       std::wstring const & label,
00294       RTI::SynchronizationFailureReason reason)
00295       throw (RTI::FederateInternalError);
00296 
00298    virtual void announceSynchronizationPoint(
00299       std::wstring  const & label,
00300       RTI::VariableLengthData const & aTag)
00301       throw (RTI::FederateInternalError);
00302 
00304    virtual void federationSynchronized(std::wstring const & label)
00305       throw (RTI::FederateInternalError);
00306 
00308    virtual void initiateFederateSave(std::wstring const & label)
00309       throw (RTI::UnableToPerformSave,
00310              RTI::FederateInternalError);
00311 
00312    virtual void initiateFederateSave(std::wstring const & label,
00313                                      RTI::LogicalTime const & theTime)
00314       throw (RTI::UnableToPerformSave,
00315              RTI::InvalidLogicalTime,
00316              RTI::FederateInternalError);
00317 
00319    virtual
00320       void
00321       federationSaved()
00322       throw (RTI::FederateInternalError);
00323 
00324    virtual void federationNotSaved(RTI::SaveFailureReason theSaveFailureReason)
00325       throw (RTI::FederateInternalError);
00326 
00327 
00329    virtual void federationSaveStatusResponse(
00330       RTI::FederateHandleSaveStatusPairVector const & theFederateStatusVector)
00331       throw (RTI::FederateInternalError);
00332 
00334    virtual void requestFederationRestoreSucceeded(std::wstring const & label)
00335       throw (RTI::FederateInternalError);
00336 
00337    virtual void requestFederationRestoreFailed(std::wstring const & label)
00338       throw (RTI::FederateInternalError);
00339 
00341    virtual void federationRestoreBegun()
00342       throw (RTI::FederateInternalError);
00343 
00345    virtual void initiateFederateRestore(std::wstring const & label,
00346                                         RTI::FederateHandle  handle)
00347       throw (RTI::SpecifiedSaveLabelDoesNotExist,
00348              RTI::CouldNotInitiateRestore,
00349              RTI::FederateInternalError);
00350 
00352    virtual void federationRestored()
00353       throw (RTI::FederateInternalError);
00354 
00355    virtual void federationNotRestored(
00356       RTI::RestoreFailureReason theRestoreFailureReason)
00357       throw (RTI::FederateInternalError);
00358 
00360    virtual void federationRestoreStatusResponse(
00361         RTI::FederateHandleRestoreStatusPairVector const & theFederateStatusVector)
00362       throw (RTI::FederateInternalError);
00363 
00367 
00369    virtual void startRegistrationForObjectClass(
00370    RTI::ObjectClassHandle  theClass)
00371       throw (RTI::ObjectClassNotPublished,
00372              RTI::FederateInternalError);
00373 
00375    virtual void stopRegistrationForObjectClass(
00376       RTI::ObjectClassHandle  theClass)
00377       throw (RTI::ObjectClassNotPublished,
00378              RTI::FederateInternalError);
00379 
00381    virtual void turnInteractionsOn(
00382    RTI::InteractionClassHandle  theHandle)
00383       throw (RTI::InteractionClassNotPublished,
00384              RTI::FederateInternalError);
00385 
00387    virtual void turnInteractionsOff(RTI::InteractionClassHandle  theHandle)
00388       throw (RTI::InteractionClassNotPublished,
00389              RTI::FederateInternalError);
00390 
00394 
00396    virtual void objectInstanceNameReservationSucceeded(
00397       std::wstring const & theObjectInstanceName)
00398       throw (RTI::UnknownName,
00399              RTI::FederateInternalError);
00400 
00401    virtual void objectInstanceNameReservationFailed(
00402       std::wstring const & theObjectInstanceName)
00403       throw (RTI::UnknownName,
00404              RTI::FederateInternalError);
00405 
00406 
00407    virtual void discoverObjectInstance(
00408       RTI::ObjectInstanceHandle  theObject,
00409       RTI::ObjectClassHandle theObjectClass,
00410       std::wstring const & theObjectInstanceName)
00411       throw (RTI::CouldNotDiscover,
00412              RTI::ObjectClassNotKnown,
00413              RTI::FederateInternalError);
00414 
00415 
00416    virtual void reflectAttributeValues(
00417        RTI::ObjectInstanceHandle theObject,
00418        RTI::AttributeHandleValueMap const & theAttributeValues,
00419        RTI::VariableLengthData const & aTag,
00420        RTI::OrderType sentOrder,
00421        RTI::TransportationType theType)
00422       throw (RTI::ObjectInstanceNotKnown,
00423              RTI::AttributeNotRecognized,
00424              RTI::AttributeNotSubscribed,
00425              RTI::FederateInternalError);
00426 
00427    virtual void reflectAttributeValues(
00428        RTI::ObjectInstanceHandle theObject,
00429        RTI::AttributeHandleValueMap const & theAttributeValues,
00430        RTI::VariableLengthData const & aTag,
00431        RTI::OrderType sentOrder,
00432        RTI::TransportationType theType,
00433        RTI::RegionHandleSet const & theSentRegionHandleSet)
00434        throw (RTI::ObjectInstanceNotKnown,
00435               RTI::AttributeNotRecognized,
00436               RTI::AttributeNotSubscribed,
00437               RTI::FederateInternalError);
00438 
00439     virtual void reflectAttributeValues(
00440        RTI::ObjectInstanceHandle theObject,
00441        RTI::AttributeHandleValueMap const & theAttributeValues,
00442        RTI::VariableLengthData const & aTag,
00443        RTI::OrderType sentOrder,
00444        RTI::TransportationType theType,
00445        RTI::LogicalTime const & theTime,
00446        RTI::OrderType receivedOrder)
00447        throw (RTI::ObjectInstanceNotKnown,
00448               RTI::AttributeNotRecognized,
00449               RTI::AttributeNotSubscribed,
00450               RTI::FederateInternalError);
00451 
00452     virtual void reflectAttributeValues(
00453        RTI::ObjectInstanceHandle theObject,
00454        RTI::AttributeHandleValueMap const & theAttributeValues,
00455        RTI::VariableLengthData const & aTag,
00456        RTI::OrderType sentOrder,
00457        RTI::TransportationType theType,
00458        RTI::LogicalTime const & theTime,
00459        RTI::OrderType receivedOrder,
00460        RTI::RegionHandleSet const & theSentRegionHandleSet)
00461        throw (RTI::ObjectInstanceNotKnown,
00462               RTI::AttributeNotRecognized,
00463               RTI::AttributeNotSubscribed,
00464               RTI::FederateInternalError);
00465 
00466     virtual void reflectAttributeValues(
00467        RTI::ObjectInstanceHandle theObject,
00468        RTI::AttributeHandleValueMap const & theAttributeValues,
00469        RTI::VariableLengthData const & aTag,
00470        RTI::OrderType sentOrder,
00471        RTI::TransportationType theType,
00472        RTI::LogicalTime const & theTime,
00473        RTI::OrderType receivedOrder,
00474        RTI::MessageRetractionHandle theHandle)
00475        throw (RTI::ObjectInstanceNotKnown,
00476               RTI::AttributeNotRecognized,
00477               RTI::AttributeNotSubscribed,
00478               RTI::InvalidLogicalTime,
00479               RTI::FederateInternalError);
00480 
00481     virtual void reflectAttributeValues(
00482        RTI::ObjectInstanceHandle theObject,
00483        RTI::AttributeHandleValueMap const & theAttributeValues,
00484        RTI::VariableLengthData const & aTag,
00485        RTI::OrderType sentOrder,
00486        RTI::TransportationType theType,
00487        RTI::LogicalTime const & theTime,
00488        RTI::OrderType receivedOrder,
00489        RTI::MessageRetractionHandle theHandle,
00490        RTI::RegionHandleSet const & theSentRegionHandleSet)
00491        throw (RTI::ObjectInstanceNotKnown,
00492               RTI::AttributeNotRecognized,
00493               RTI::AttributeNotSubscribed,
00494               RTI::InvalidLogicalTime,
00495               RTI::FederateInternalError);
00496 
00497 
00499    virtual void receiveInteraction (
00500       RTI::InteractionClassHandle theInteraction,
00501       RTI::ParameterHandleValueMap const & theParameterValues,
00502       RTI::VariableLengthData const & aTag,
00503       RTI::OrderType sentOrder,
00504       RTI::TransportationType theType)
00505       throw (RTI::InteractionClassNotRecognized,
00506              RTI::InteractionParameterNotRecognized,
00507              RTI::InteractionClassNotSubscribed,
00508              RTI::FederateInternalError);
00509 
00510    virtual void receiveInteraction(
00511       RTI::InteractionClassHandle theInteraction,
00512       RTI::ParameterHandleValueMap const & theParameterValues,
00513       RTI::VariableLengthData const & aTag,
00514       RTI::OrderType sentOrder,
00515       RTI::TransportationType theType,
00516       RTI::RegionHandleSet const & theSentRegionHandleSet)
00517       throw (RTI::InteractionClassNotRecognized,
00518              RTI::InteractionParameterNotRecognized,
00519              RTI::InteractionClassNotSubscribed,
00520              RTI::FederateInternalError);
00521 
00522    virtual void receiveInteraction(
00523       RTI::InteractionClassHandle theInteraction,
00524       RTI::ParameterHandleValueMap const & theParameterValues,
00525       RTI::VariableLengthData const & aTag,
00526       RTI::OrderType sentOrder,
00527       RTI::TransportationType theType,
00528       RTI::LogicalTime const & theTime,
00529       RTI::OrderType receivedOrder)
00530       throw (RTI::InteractionClassNotRecognized,
00531              RTI::InteractionParameterNotRecognized,
00532              RTI::InteractionClassNotSubscribed,
00533              RTI::FederateInternalError);
00534 
00535    virtual void receiveInteraction(
00536       RTI::InteractionClassHandle theInteraction,
00537       RTI::ParameterHandleValueMap const & theParameterValues,
00538       RTI::VariableLengthData const & aTag,
00539       RTI::OrderType sentOrder,
00540       RTI::TransportationType theType,
00541       RTI::LogicalTime const & theTime,
00542       RTI::OrderType receivedOrder,
00543       RTI::RegionHandleSet const & theSentRegionHandleSet)
00544       throw (RTI::InteractionClassNotRecognized,
00545              RTI::InteractionParameterNotRecognized,
00546              RTI::InteractionClassNotSubscribed,
00547              RTI::FederateInternalError);
00548 
00549     virtual void receiveInteraction(
00550        RTI::InteractionClassHandle theInteraction,
00551        RTI::ParameterHandleValueMap const & theParameterValues,
00552        RTI::VariableLengthData const & aTag,
00553        RTI::OrderType sentOrder,
00554        RTI::TransportationType theType,
00555        RTI::LogicalTime const & theTime,
00556        RTI::OrderType receivedOrder,
00557        RTI::MessageRetractionHandle theHandle)
00558        throw (RTI::InteractionClassNotRecognized,
00559               RTI::InteractionParameterNotRecognized,
00560               RTI::InteractionClassNotSubscribed,
00561               RTI::InvalidLogicalTime,
00562               RTI::FederateInternalError);
00563 
00564     virtual void receiveInteraction (
00565        RTI::InteractionClassHandle theInteraction,
00566        RTI::ParameterHandleValueMap const & theParameterValues,
00567        RTI::VariableLengthData const & aTag,
00568        RTI::OrderType sentOrder,
00569        RTI::TransportationType theType,
00570        RTI::LogicalTime const & theTime,
00571        RTI::OrderType receivedOrder,
00572        RTI::MessageRetractionHandle theHandle,
00573        RTI::RegionHandleSet const & theSentRegionHandleSet)
00574        throw (RTI::InteractionClassNotRecognized,
00575               RTI::InteractionParameterNotRecognized,
00576               RTI::InteractionClassNotSubscribed,
00577               RTI::InvalidLogicalTime,
00578               RTI::FederateInternalError);
00579 
00581     virtual void removeObjectInstance(
00582        RTI::ObjectInstanceHandle  theObject,
00583        RTI::VariableLengthData const & aTag,
00584        RTI::OrderType sentOrder)
00585        throw (RTI::ObjectInstanceNotKnown,
00586               RTI::FederateInternalError);
00587 
00588     virtual void removeObjectInstance(
00589        RTI::ObjectInstanceHandle  theObject,
00590        RTI::VariableLengthData const & aTag,
00591        RTI::OrderType sentOrder,
00592        RTI::LogicalTime const & theTime,
00593        RTI::OrderType receivedOrder)
00594        throw (RTI::ObjectInstanceNotKnown,
00595               RTI::FederateInternalError);
00596 
00597     virtual void removeObjectInstance(
00598        RTI::ObjectInstanceHandle  theObject,
00599        RTI::VariableLengthData const & aTag,
00600        RTI::OrderType sentOrder,
00601        RTI::LogicalTime const & theTime,
00602        RTI::OrderType receivedOrder,
00603        RTI::MessageRetractionHandle theHandle)
00604        throw (RTI::ObjectInstanceNotKnown,
00605               RTI::InvalidLogicalTime,
00606               RTI::FederateInternalError);
00607 
00609     virtual void attributesInScope(
00610        RTI::ObjectInstanceHandle  theObject,
00611        RTI::AttributeHandleSet const & theAttributes)
00612        throw (RTI::ObjectInstanceNotKnown,
00613               RTI::AttributeNotRecognized,
00614               RTI::AttributeNotSubscribed,
00615               RTI::FederateInternalError);
00616 
00618     virtual void attributesOutOfScope(
00619        RTI::ObjectInstanceHandle  theObject,
00620        RTI::AttributeHandleSet const &theAttributes)
00621        throw (RTI::ObjectInstanceNotKnown,
00622               RTI::AttributeNotRecognized,
00623               RTI::AttributeNotSubscribed,
00624               RTI::FederateInternalError);
00625 
00627     virtual void provideAttributeValueUpdate(
00628        RTI::ObjectInstanceHandle  theObject,
00629        RTI::AttributeHandleSet const & theAttributes,
00630        RTI::VariableLengthData const & aTag)
00631        throw (RTI::ObjectInstanceNotKnown,
00632               RTI::AttributeNotRecognized,
00633               RTI::AttributeNotOwned,
00634               RTI::FederateInternalError);
00635 
00637     virtual void turnUpdatesOnForObjectInstance(
00638        RTI::ObjectInstanceHandle  theObject,
00639        RTI::AttributeHandleSet const & theAttributes)
00640        throw (RTI::ObjectInstanceNotKnown,
00641               RTI::AttributeNotRecognized,
00642               RTI::AttributeNotOwned,
00643               RTI::FederateInternalError);
00644 
00646     virtual void turnUpdatesOffForObjectInstance(
00647        RTI::ObjectInstanceHandle  theObject,
00648        RTI::AttributeHandleSet const & theAttributes)
00649        throw (RTI::ObjectInstanceNotKnown,
00650               RTI::AttributeNotRecognized,
00651               RTI::AttributeNotOwned,
00652               RTI::FederateInternalError);
00653 
00657   
00658     virtual void requestAttributeOwnershipAssumption(
00659        RTI::ObjectInstanceHandle  theObject,
00660        RTI::AttributeHandleSet const & offeredAttributes,
00661        RTI::VariableLengthData const & aTag)
00662        throw (RTI::ObjectInstanceNotKnown,
00663               RTI::AttributeNotRecognized,
00664               RTI::AttributeAlreadyOwned,
00665               RTI::AttributeNotPublished,
00666               RTI::FederateInternalError);
00667 
00668     virtual void requestDivestitureConfirmation(
00669        RTI::ObjectInstanceHandle  theObject,
00670        RTI::AttributeHandleSet const & releasedAttributes)
00671        throw (RTI::ObjectInstanceNotKnown,
00672               RTI::AttributeNotRecognized,
00673               RTI::AttributeNotOwned,
00674               RTI::AttributeDivestitureWasNotRequested,
00675               RTI::FederateInternalError);
00676 
00677     virtual void attributeOwnershipAcquisitionNotification(
00678        RTI::ObjectInstanceHandle  theObject,
00679        RTI::AttributeHandleSet const & securedAttributes,
00680        RTI::VariableLengthData const & aTag)
00681        throw (RTI::ObjectInstanceNotKnown,
00682               RTI::AttributeNotRecognized,
00683               RTI::AttributeAcquisitionWasNotRequested,
00684               RTI::AttributeAlreadyOwned,
00685               RTI::AttributeNotPublished,
00686               RTI::FederateInternalError);
00687 
00688     virtual void attributeOwnershipUnavailable(
00689        RTI::ObjectInstanceHandle  theObject,
00690        RTI::AttributeHandleSet const & theAttributes)
00691        throw (RTI::ObjectInstanceNotKnown,
00692               RTI::AttributeNotRecognized,
00693               RTI::AttributeAlreadyOwned,
00694               RTI::AttributeAcquisitionWasNotRequested,
00695               RTI::FederateInternalError);
00696 
00697     virtual void requestAttributeOwnershipRelease(
00698        RTI::ObjectInstanceHandle  theObject,
00699        RTI::AttributeHandleSet const & candidateAttributes,
00700        RTI::VariableLengthData const & aTag)
00701        throw (RTI::ObjectInstanceNotKnown,
00702               RTI::AttributeNotRecognized,
00703               RTI::AttributeNotOwned,
00704               RTI::FederateInternalError);
00705 
00706     virtual void confirmAttributeOwnershipAcquisitionCancellation(
00707        RTI::ObjectInstanceHandle  theObject,
00708        RTI::AttributeHandleSet const & theAttributes)
00709        throw (RTI::ObjectInstanceNotKnown,
00710               RTI::AttributeNotRecognized,
00711               RTI::AttributeAlreadyOwned,
00712               RTI::AttributeAcquisitionWasNotCanceled,
00713               RTI::FederateInternalError);
00714 
00715     virtual void informAttributeOwnership(
00716       RTI::ObjectInstanceHandle  theObject,
00717       RTI::AttributeHandle theAttribute,
00718       RTI::FederateHandle theOwner)
00719        throw (RTI::ObjectInstanceNotKnown,
00720               RTI::AttributeNotRecognized,
00721               RTI::FederateInternalError);
00722 
00723     virtual void attributeIsNotOwned(
00724        RTI::ObjectInstanceHandle  theObject,
00725        RTI::AttributeHandle theAttribute)
00726        throw (RTI::ObjectInstanceNotKnown,
00727               RTI::AttributeNotRecognized,
00728               RTI::FederateInternalError);
00729 
00730     virtual void attributeIsOwnedByRTI(
00731        RTI::ObjectInstanceHandle  theObject,
00732        RTI::AttributeHandle theAttribute)
00733        throw (RTI::ObjectInstanceNotKnown,
00734               RTI::AttributeNotRecognized,
00735               RTI::FederateInternalError);
00736 
00740   
00741     virtual void timeRegulationEnabled(
00742        RTI::LogicalTime const & theFederateTime)
00743        throw (RTI::InvalidLogicalTime,
00744               RTI::NoRequestToEnableTimeRegulationWasPending,
00745               RTI::FederateInternalError);
00746 
00747     virtual void timeConstrainedEnabled(
00748        RTI::LogicalTime const & theFederateTime)
00749        throw (RTI::InvalidLogicalTime,
00750              RTI::NoRequestToEnableTimeConstrainedWasPending,
00751              RTI::FederateInternalError);
00752 
00753     virtual void timeAdvanceGrant( RTI::LogicalTime const & theTime)
00754        throw (RTI::InvalidLogicalTime,
00755               RTI::JoinedFederateIsNotInTimeAdvancingState,
00756               RTI::FederateInternalError);
00757 
00758     virtual void requestRetraction(RTI::MessageRetractionHandle theHandle)
00759        throw (RTI::FederateInternalError);
00760 };
00761   
00762 #endif
00763 #endif
00764 #endif //! RTI_FederateAmbassador_h
00765 
00766 

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)