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