![]() |
VR-Link API Documentation for HLA 1.3
|
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