14 #ifndef DtHLA_1516_EVOLVED
29 const RTI::VariableLengthData& tag,
40 struct DtScopeChangeCallbackData
43 RTI::ObjectInstanceHandle handle;
49 throw (RTI::FederateInternalError);
75 virtual
void addReflectAttributeValuesCb(
77 virtual
void removeReflectAttributeValuesCb(
82 virtual
void addDiscoverObjectCb( RTI::ObjectClassHandle hand,
84 virtual
void removeDiscoverObjectCb( RTI::ObjectClassHandle hand,
89 virtual
void addRemoveObjectCb( RTI::ObjectInstanceHandle
id,
91 virtual
void removeRemoveObjectCb( RTI::ObjectInstanceHandle
id,
96 virtual
void addStartRegCb( RTI::ObjectClassHandle hand,
98 virtual
void removeStartRegCb( RTI::ObjectClassHandle hand,
103 virtual
void addStopRegCb( RTI::ObjectClassHandle hand,
105 virtual
void removeStopRegCb( RTI::ObjectClassHandle hand,
110 virtual
void addUpdatesOnCb( RTI::ObjectInstanceHandle hand,
112 virtual
void removeUpdatesOnCb( RTI::ObjectInstanceHandle hand,
117 virtual
void addUpdatesOffCb( RTI::ObjectInstanceHandle hand,
119 virtual
void removeUpdatesOffCb( RTI::ObjectInstanceHandle hand,
124 virtual
void addStartInteractionsCb( RTI::InteractionClassHandle hand,
126 virtual
void removeStartInteractionsCb( RTI::InteractionClassHandle hand,
131 virtual
void addStopInteractionsCb( RTI::InteractionClassHandle hand,
133 virtual
void removeStopInteractionsCb( RTI::InteractionClassHandle hand,
138 virtual
void addReceiveInteractionCb( RTI::InteractionClassHandle hand,
140 virtual
void removeReceiveInteractionCb( RTI::InteractionClassHandle hand,
145 virtual
void addTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
146 virtual
void removeTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
150 virtual
void addTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
151 virtual
void removeTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
155 virtual
void addTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
156 virtual
void removeTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
160 virtual
void addNameReservationSucceeded( DtReserveNameCb cb,
void* usr );
161 virtual
void removeNameReservationSucceeded( DtReserveNameCb cb,
void* usr );
165 virtual
void addNameReservationFailed( DtReserveNameCb cb,
void* usr );
166 virtual
void removeNameReservationFailed( DtReserveNameCb cb,
void* usr );
169 virtual
void addSynchPointRegSucceededCb(const
DtString& label,
174 virtual
void removeSynchPointRegSucceededCb(const
DtString& label,
179 virtual
void addSynchPointRegFailedCb(const
DtString& label,
184 virtual
void removeSynchPointRegFailedCb(const
DtString& label,
189 virtual
void addFederationSynchedCb(const
DtString& label,
194 virtual
void removeFederationSynchedCb(const
DtString& label,
199 virtual
void addAnnounceSynchPointCb(const
DtString& label,
204 virtual
void removeAnnounceSynchPointCb(const
DtString& label,
209 virtual
void setRemoveObjectOnAttOutOfScope(
bool remove);
210 virtual
bool removeObjectOnAttOutOfScope() const;
216 struct DtGeneralSynchPointCbInfo
222 struct DtLabelledSynchPointCbInfo
229 struct DtGeneralAnnounceCbInfo
235 struct DtLabelledAnnounceCbInfo
242 static void attributesOutOfScopeCb(
void* usr);
244 virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
260 DtReserveNameCbList myNameReservationSucceededCbList;
261 DtReserveNameCbList myNameReservationFailedCbList;
264 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
265 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
266 std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
267 std::list<DtLabelledAnnounceCbInfo> myLabAnnounceSynchPointCbList;
269 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
270 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
271 std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
272 std::list<DtGeneralAnnounceCbInfo> myAnnounceSynchPointCbList;
274 bool myRemoveObjectOnAttOutOfScope;
277 virtual void applyFedsSynchedCallbacks(
const DtString& label);
278 virtual void applyRegistrationSucceededCallbacks(
const DtString& label);
279 virtual void applyRegistrationFailedCallbacks(
const DtString& label);
282 virtual bool applyAnnounceCallbacks(
const DtString& label,
const RTI::VariableLengthData& tag);
289 std::wstring
const & label)
290 throw (RTI::FederateInternalError);
293 std::wstring
const & label,
294 RTI::SynchronizationFailureReason reason)
295 throw (RTI::FederateInternalError);
299 std::wstring
const & label,
300 RTI::VariableLengthData
const & aTag)
301 throw (RTI::FederateInternalError);
305 throw (RTI::FederateInternalError);
309 throw (RTI::UnableToPerformSave,
310 RTI::FederateInternalError);
313 RTI::LogicalTime
const & theTime)
314 throw (RTI::UnableToPerformSave,
315 RTI::InvalidLogicalTime,
316 RTI::FederateInternalError);
322 throw (RTI::FederateInternalError);
324 virtual
void federationNotSaved(RTI::SaveFailureReason theSaveFailureReason)
325 throw (RTI::FederateInternalError);
329 virtual
void federationSaveStatusResponse(
330 RTI::FederateHandleSaveStatusPairVector const & theFederateStatusVector)
331 throw (RTI::FederateInternalError);
334 virtual
void requestFederationRestoreSucceeded(std::wstring const & label)
335 throw (RTI::FederateInternalError);
337 virtual
void requestFederationRestoreFailed(std::wstring const & label)
338 throw (RTI::FederateInternalError);
341 virtual
void federationRestoreBegun()
342 throw (RTI::FederateInternalError);
345 virtual
void initiateFederateRestore(std::wstring const & label,
346 RTI::FederateHandle handle)
347 throw (RTI::SpecifiedSaveLabelDoesNotExist,
348 RTI::CouldNotInitiateRestore,
349 RTI::FederateInternalError);
352 virtual
void federationRestored()
353 throw (RTI::FederateInternalError);
355 virtual
void federationNotRestored(
356 RTI::RestoreFailureReason theRestoreFailureReason)
357 throw (RTI::FederateInternalError);
360 virtual
void federationRestoreStatusResponse(
361 RTI::FederateHandleRestoreStatusPairVector const & theFederateStatusVector)
362 throw (RTI::FederateInternalError);
369 virtual
void startRegistrationForObjectClass(
370 RTI::ObjectClassHandle theClass)
371 throw (RTI::ObjectClassNotPublished,
372 RTI::FederateInternalError);
375 virtual
void stopRegistrationForObjectClass(
376 RTI::ObjectClassHandle theClass)
377 throw (RTI::ObjectClassNotPublished,
378 RTI::FederateInternalError);
381 virtual
void turnInteractionsOn(
382 RTI::InteractionClassHandle theHandle)
383 throw (RTI::InteractionClassNotPublished,
384 RTI::FederateInternalError);
387 virtual
void turnInteractionsOff(RTI::InteractionClassHandle theHandle)
388 throw (RTI::InteractionClassNotPublished,
389 RTI::FederateInternalError);
396 virtual
void objectInstanceNameReservationSucceeded(
397 std::wstring const & theObjectInstanceName)
398 throw (RTI::UnknownName,
399 RTI::FederateInternalError);
401 virtual
void objectInstanceNameReservationFailed(
402 std::wstring const & theObjectInstanceName)
403 throw (RTI::UnknownName,
404 RTI::FederateInternalError);
407 virtual
void discoverObjectInstance(
408 RTI::ObjectInstanceHandle theObject,
409 RTI::ObjectClassHandle theObjectClass,
410 std::wstring const & theObjectInstanceName)
411 throw (RTI::CouldNotDiscover,
412 RTI::ObjectClassNotKnown,
413 RTI::FederateInternalError);
416 virtual
void reflectAttributeValues(
417 RTI::ObjectInstanceHandle theObject,
418 RTI::AttributeHandleValueMap const & theAttributeValues,
419 RTI::VariableLengthData const & aTag,
420 RTI::OrderType sentOrder,
421 RTI::TransportationType theType)
422 throw (RTI::ObjectInstanceNotKnown,
423 RTI::AttributeNotRecognized,
424 RTI::AttributeNotSubscribed,
425 RTI::FederateInternalError);
427 virtual
void reflectAttributeValues(
428 RTI::ObjectInstanceHandle theObject,
429 RTI::AttributeHandleValueMap const & theAttributeValues,
430 RTI::VariableLengthData const & aTag,
431 RTI::OrderType sentOrder,
432 RTI::TransportationType theType,
433 RTI::RegionHandleSet const & theSentRegionHandleSet)
434 throw (RTI::ObjectInstanceNotKnown,
435 RTI::AttributeNotRecognized,
436 RTI::AttributeNotSubscribed,
437 RTI::FederateInternalError);
439 virtual
void reflectAttributeValues(
440 RTI::ObjectInstanceHandle theObject,
441 RTI::AttributeHandleValueMap const & theAttributeValues,
442 RTI::VariableLengthData const & aTag,
443 RTI::OrderType sentOrder,
444 RTI::TransportationType theType,
445 RTI::LogicalTime const & theTime,
446 RTI::OrderType receivedOrder)
447 throw (RTI::ObjectInstanceNotKnown,
448 RTI::AttributeNotRecognized,
449 RTI::AttributeNotSubscribed,
450 RTI::FederateInternalError);
452 virtual
void reflectAttributeValues(
453 RTI::ObjectInstanceHandle theObject,
454 RTI::AttributeHandleValueMap const & theAttributeValues,
455 RTI::VariableLengthData const & aTag,
456 RTI::OrderType sentOrder,
457 RTI::TransportationType theType,
458 RTI::LogicalTime const & theTime,
459 RTI::OrderType receivedOrder,
460 RTI::RegionHandleSet const & theSentRegionHandleSet)
461 throw (RTI::ObjectInstanceNotKnown,
462 RTI::AttributeNotRecognized,
463 RTI::AttributeNotSubscribed,
464 RTI::FederateInternalError);
466 virtual
void reflectAttributeValues(
467 RTI::ObjectInstanceHandle theObject,
468 RTI::AttributeHandleValueMap const & theAttributeValues,
469 RTI::VariableLengthData const & aTag,
470 RTI::OrderType sentOrder,
471 RTI::TransportationType theType,
472 RTI::LogicalTime const & theTime,
473 RTI::OrderType receivedOrder,
474 RTI::MessageRetractionHandle theHandle)
475 throw (RTI::ObjectInstanceNotKnown,
476 RTI::AttributeNotRecognized,
477 RTI::AttributeNotSubscribed,
478 RTI::InvalidLogicalTime,
479 RTI::FederateInternalError);
481 virtual
void reflectAttributeValues(
482 RTI::ObjectInstanceHandle theObject,
483 RTI::AttributeHandleValueMap const & theAttributeValues,
484 RTI::VariableLengthData const & aTag,
485 RTI::OrderType sentOrder,
486 RTI::TransportationType theType,
487 RTI::LogicalTime const & theTime,
488 RTI::OrderType receivedOrder,
489 RTI::MessageRetractionHandle theHandle,
490 RTI::RegionHandleSet const & theSentRegionHandleSet)
491 throw (RTI::ObjectInstanceNotKnown,
492 RTI::AttributeNotRecognized,
493 RTI::AttributeNotSubscribed,
494 RTI::InvalidLogicalTime,
495 RTI::FederateInternalError);
499 virtual
void receiveInteraction (
500 RTI::InteractionClassHandle theInteraction,
501 RTI::ParameterHandleValueMap const & theParameterValues,
502 RTI::VariableLengthData const & aTag,
503 RTI::OrderType sentOrder,
504 RTI::TransportationType theType)
505 throw (RTI::InteractionClassNotRecognized,
506 RTI::InteractionParameterNotRecognized,
507 RTI::InteractionClassNotSubscribed,
508 RTI::FederateInternalError);
510 virtual
void receiveInteraction(
511 RTI::InteractionClassHandle theInteraction,
512 RTI::ParameterHandleValueMap const & theParameterValues,
513 RTI::VariableLengthData const & aTag,
514 RTI::OrderType sentOrder,
515 RTI::TransportationType theType,
516 RTI::RegionHandleSet const & theSentRegionHandleSet)
517 throw (RTI::InteractionClassNotRecognized,
518 RTI::InteractionParameterNotRecognized,
519 RTI::InteractionClassNotSubscribed,
520 RTI::FederateInternalError);
522 virtual
void receiveInteraction(
523 RTI::InteractionClassHandle theInteraction,
524 RTI::ParameterHandleValueMap const & theParameterValues,
525 RTI::VariableLengthData const & aTag,
526 RTI::OrderType sentOrder,
527 RTI::TransportationType theType,
528 RTI::LogicalTime const & theTime,
529 RTI::OrderType receivedOrder)
530 throw (RTI::InteractionClassNotRecognized,
531 RTI::InteractionParameterNotRecognized,
532 RTI::InteractionClassNotSubscribed,
533 RTI::FederateInternalError);
535 virtual
void receiveInteraction(
536 RTI::InteractionClassHandle theInteraction,
537 RTI::ParameterHandleValueMap const & theParameterValues,
538 RTI::VariableLengthData const & aTag,
539 RTI::OrderType sentOrder,
540 RTI::TransportationType theType,
541 RTI::LogicalTime const & theTime,
542 RTI::OrderType receivedOrder,
543 RTI::RegionHandleSet const & theSentRegionHandleSet)
544 throw (RTI::InteractionClassNotRecognized,
545 RTI::InteractionParameterNotRecognized,
546 RTI::InteractionClassNotSubscribed,
547 RTI::FederateInternalError);
549 virtual
void receiveInteraction(
550 RTI::InteractionClassHandle theInteraction,
551 RTI::ParameterHandleValueMap const & theParameterValues,
552 RTI::VariableLengthData const & aTag,
553 RTI::OrderType sentOrder,
554 RTI::TransportationType theType,
555 RTI::LogicalTime const & theTime,
556 RTI::OrderType receivedOrder,
557 RTI::MessageRetractionHandle theHandle)
558 throw (RTI::InteractionClassNotRecognized,
559 RTI::InteractionParameterNotRecognized,
560 RTI::InteractionClassNotSubscribed,
561 RTI::InvalidLogicalTime,
562 RTI::FederateInternalError);
564 virtual
void receiveInteraction (
565 RTI::InteractionClassHandle theInteraction,
566 RTI::ParameterHandleValueMap const & theParameterValues,
567 RTI::VariableLengthData const & aTag,
568 RTI::OrderType sentOrder,
569 RTI::TransportationType theType,
570 RTI::LogicalTime const & theTime,
571 RTI::OrderType receivedOrder,
572 RTI::MessageRetractionHandle theHandle,
573 RTI::RegionHandleSet const & theSentRegionHandleSet)
574 throw (RTI::InteractionClassNotRecognized,
575 RTI::InteractionParameterNotRecognized,
576 RTI::InteractionClassNotSubscribed,
577 RTI::InvalidLogicalTime,
578 RTI::FederateInternalError);
581 virtual
void removeObjectInstance(
582 RTI::ObjectInstanceHandle theObject,
583 RTI::VariableLengthData const & aTag,
584 RTI::OrderType sentOrder)
585 throw (RTI::ObjectInstanceNotKnown,
586 RTI::FederateInternalError);
588 virtual
void removeObjectInstance(
589 RTI::ObjectInstanceHandle theObject,
590 RTI::VariableLengthData const & aTag,
591 RTI::OrderType sentOrder,
592 RTI::LogicalTime const & theTime,
593 RTI::OrderType receivedOrder)
594 throw (RTI::ObjectInstanceNotKnown,
595 RTI::FederateInternalError);
597 virtual
void removeObjectInstance(
598 RTI::ObjectInstanceHandle theObject,
599 RTI::VariableLengthData const & aTag,
600 RTI::OrderType sentOrder,
601 RTI::LogicalTime const & theTime,
602 RTI::OrderType receivedOrder,
603 RTI::MessageRetractionHandle theHandle)
604 throw (RTI::ObjectInstanceNotKnown,
605 RTI::InvalidLogicalTime,
606 RTI::FederateInternalError);
609 virtual
void attributesInScope(
610 RTI::ObjectInstanceHandle theObject,
611 RTI::AttributeHandleSet const & theAttributes)
612 throw (RTI::ObjectInstanceNotKnown,
613 RTI::AttributeNotRecognized,
614 RTI::AttributeNotSubscribed,
615 RTI::FederateInternalError);
618 virtual
void attributesOutOfScope(
619 RTI::ObjectInstanceHandle theObject,
620 RTI::AttributeHandleSet const &theAttributes)
621 throw (RTI::ObjectInstanceNotKnown,
622 RTI::AttributeNotRecognized,
623 RTI::AttributeNotSubscribed,
624 RTI::FederateInternalError);
627 virtual
void provideAttributeValueUpdate(
628 RTI::ObjectInstanceHandle theObject,
629 RTI::AttributeHandleSet const & theAttributes,
630 RTI::VariableLengthData const & aTag)
631 throw (RTI::ObjectInstanceNotKnown,
632 RTI::AttributeNotRecognized,
633 RTI::AttributeNotOwned,
634 RTI::FederateInternalError);
637 virtual
void turnUpdatesOnForObjectInstance(
638 RTI::ObjectInstanceHandle theObject,
639 RTI::AttributeHandleSet const & theAttributes)
640 throw (RTI::ObjectInstanceNotKnown,
641 RTI::AttributeNotRecognized,
642 RTI::AttributeNotOwned,
643 RTI::FederateInternalError);
646 virtual
void turnUpdatesOffForObjectInstance(
647 RTI::ObjectInstanceHandle theObject,
648 RTI::AttributeHandleSet const & theAttributes)
649 throw (RTI::ObjectInstanceNotKnown,
650 RTI::AttributeNotRecognized,
651 RTI::AttributeNotOwned,
652 RTI::FederateInternalError);
658 virtual
void requestAttributeOwnershipAssumption(
659 RTI::ObjectInstanceHandle theObject,
660 RTI::AttributeHandleSet const & offeredAttributes,
661 RTI::VariableLengthData const & aTag)
662 throw (RTI::ObjectInstanceNotKnown,
663 RTI::AttributeNotRecognized,
664 RTI::AttributeAlreadyOwned,
665 RTI::AttributeNotPublished,
666 RTI::FederateInternalError);
668 virtual
void requestDivestitureConfirmation(
669 RTI::ObjectInstanceHandle theObject,
670 RTI::AttributeHandleSet const & releasedAttributes)
671 throw (RTI::ObjectInstanceNotKnown,
672 RTI::AttributeNotRecognized,
673 RTI::AttributeNotOwned,
674 RTI::AttributeDivestitureWasNotRequested,
675 RTI::FederateInternalError);
677 virtual
void attributeOwnershipAcquisitionNotification(
678 RTI::ObjectInstanceHandle theObject,
679 RTI::AttributeHandleSet const & securedAttributes,
680 RTI::VariableLengthData const & aTag)
681 throw (RTI::ObjectInstanceNotKnown,
682 RTI::AttributeNotRecognized,
683 RTI::AttributeAcquisitionWasNotRequested,
684 RTI::AttributeAlreadyOwned,
685 RTI::AttributeNotPublished,
686 RTI::FederateInternalError);
688 virtual
void attributeOwnershipUnavailable(
689 RTI::ObjectInstanceHandle theObject,
690 RTI::AttributeHandleSet const & theAttributes)
691 throw (RTI::ObjectInstanceNotKnown,
692 RTI::AttributeNotRecognized,
693 RTI::AttributeAlreadyOwned,
694 RTI::AttributeAcquisitionWasNotRequested,
695 RTI::FederateInternalError);
697 virtual
void requestAttributeOwnershipRelease(
698 RTI::ObjectInstanceHandle theObject,
699 RTI::AttributeHandleSet const & candidateAttributes,
700 RTI::VariableLengthData const & aTag)
701 throw (RTI::ObjectInstanceNotKnown,
702 RTI::AttributeNotRecognized,
703 RTI::AttributeNotOwned,
704 RTI::FederateInternalError);
706 virtual
void confirmAttributeOwnershipAcquisitionCancellation(
707 RTI::ObjectInstanceHandle theObject,
708 RTI::AttributeHandleSet const & theAttributes)
709 throw (RTI::ObjectInstanceNotKnown,
710 RTI::AttributeNotRecognized,
711 RTI::AttributeAlreadyOwned,
712 RTI::AttributeAcquisitionWasNotCanceled,
713 RTI::FederateInternalError);
715 virtual
void informAttributeOwnership(
716 RTI::ObjectInstanceHandle theObject,
717 RTI::AttributeHandle theAttribute,
718 RTI::FederateHandle theOwner)
719 throw (RTI::ObjectInstanceNotKnown,
720 RTI::AttributeNotRecognized,
721 RTI::FederateInternalError);
723 virtual
void attributeIsNotOwned(
724 RTI::ObjectInstanceHandle theObject,
725 RTI::AttributeHandle theAttribute)
726 throw (RTI::ObjectInstanceNotKnown,
727 RTI::AttributeNotRecognized,
728 RTI::FederateInternalError);
730 virtual
void attributeIsOwnedByRTI(
731 RTI::ObjectInstanceHandle theObject,
732 RTI::AttributeHandle theAttribute)
733 throw (RTI::ObjectInstanceNotKnown,
734 RTI::AttributeNotRecognized,
735 RTI::FederateInternalError);
741 virtual
void timeRegulationEnabled(
742 RTI::LogicalTime const & theFederateTime)
743 throw (RTI::InvalidLogicalTime,
744 RTI::NoRequestToEnableTimeRegulationWasPending,
745 RTI::FederateInternalError);
747 virtual
void timeConstrainedEnabled(
748 RTI::LogicalTime const & theFederateTime)
749 throw (RTI::InvalidLogicalTime,
750 RTI::NoRequestToEnableTimeConstrainedWasPending,
751 RTI::FederateInternalError);
753 virtual
void timeAdvanceGrant( RTI::LogicalTime const & theTime)
754 throw (RTI::InvalidLogicalTime,
755 RTI::JoinedFederateIsNotInTimeAdvancingState,
756 RTI::FederateInternalError);
758 virtual
void requestRetraction(RTI::MessageRetractionHandle theHandle)
759 throw (RTI::FederateInternalError);