35 const RTI::VariableLengthData& tag,
46 struct DtScopeChangeCallbackData
49 RTI::ObjectInstanceHandle handle;
81 virtual
void addReflectAttributeValuesCb(
83 virtual
void removeReflectAttributeValuesCb(
88 virtual
void addDiscoverObjectCb( RTI::ObjectClassHandle hand,
90 virtual
void removeDiscoverObjectCb( RTI::ObjectClassHandle hand,
95 virtual
void addRemoveObjectCb( RTI::ObjectInstanceHandle
id,
97 virtual
void removeRemoveObjectCb( RTI::ObjectInstanceHandle
id,
102 virtual
void addStartRegCb( RTI::ObjectClassHandle hand,
104 virtual
void removeStartRegCb( RTI::ObjectClassHandle hand,
109 virtual
void addStopRegCb( RTI::ObjectClassHandle hand,
111 virtual
void removeStopRegCb( RTI::ObjectClassHandle hand,
116 virtual
void addUpdatesOnCb( RTI::ObjectInstanceHandle hand,
118 virtual
void removeUpdatesOnCb( RTI::ObjectInstanceHandle hand,
123 virtual
void addUpdatesOffCb( RTI::ObjectInstanceHandle hand,
125 virtual
void removeUpdatesOffCb( RTI::ObjectInstanceHandle hand,
130 virtual
void addStartInteractionsCb( RTI::InteractionClassHandle hand,
132 virtual
void removeStartInteractionsCb( RTI::InteractionClassHandle hand,
137 virtual
void addStopInteractionsCb( RTI::InteractionClassHandle hand,
139 virtual
void removeStopInteractionsCb( RTI::InteractionClassHandle hand,
144 virtual
void addReceiveInteractionCb( RTI::InteractionClassHandle hand,
146 virtual
void removeReceiveInteractionCb( RTI::InteractionClassHandle hand,
151 virtual
void addTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
152 virtual
void removeTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
156 virtual
void addTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
157 virtual
void removeTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
161 virtual
void addTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
162 virtual
void removeTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
166 virtual
void addNameReservationSucceeded(
DtReserveNameCb cb,
void* usr );
167 virtual
void removeNameReservationSucceeded(
DtReserveNameCb cb,
void* usr );
171 virtual
void addNameReservationFailed(
DtReserveNameCb cb,
void* usr );
172 virtual
void removeNameReservationFailed(
DtReserveNameCb cb,
void* usr );
177 virtual
void addMultipleNameReservationSucceeded( DtReserveMultipleNamesCb cb,
void* usr );
178 virtual
void removeNameReservationSucceeded( DtReserveMultipleNamesCb,
void* usr );
182 virtual
void addMultipleNameReservationFailed( DtReserveMultipleNamesCb cb,
void* usr );
183 virtual
void removeMultipleNameReservationFailed( DtReserveMultipleNamesCb,
void* usr );
186 virtual
void addSynchPointRegSucceededCb(const
DtString& label,
191 virtual
void removeSynchPointRegSucceededCb(const
DtString& label,
196 virtual
void addSynchPointRegFailedCb(const
DtString& label,
201 virtual
void removeSynchPointRegFailedCb(const
DtString& label,
206 virtual
void addFederationSynchedCb(const
DtString& label,
211 virtual
void removeFederationSynchedCb(const
DtString& label,
216 virtual
void addAnnounceSynchPointCb(const
DtString& label,
221 virtual
void removeAnnounceSynchPointCb(const
DtString& label,
226 virtual
void setRemoveObjectOnAttOutOfScope(
bool remove);
227 virtual
bool removeObjectOnAttOutOfScope() const;
236 virtual
void addFederateSaveCb(const
DtString& label,
241 virtual
void removeFederateSaveCb(const
DtString& label,
249 virtual
void addFederateRestoreCb(const
DtString& label,
254 virtual
void removeFederateRestoreCb(const
DtString& label,
259 virtual
bool waitingForSaveOrRestore() const;
262 virtual
DtString getFederateNameFromHandle(const RTI::FederateHandle&) const;
268 struct DtFederateSaveCbInfo
274 struct DtFederateRestoreCbInfo
280 struct DtLabelledFederateSaveCbInfo
287 struct DtLabelledFederateRestoreCbInfo
294 struct DtGeneralSynchPointCbInfo
300 struct DtLabelledSynchPointCbInfo
307 struct DtGeneralAnnounceCbInfo
313 struct DtLabelledAnnounceCbInfo
320 static void attributesOutOfScopeCb(
void* usr);
322 virtual void processAttributesOutOfScope(RTI::ObjectInstanceHandle handle);
343 DtReserveMultipleNamesCbList myMultipleNamesReservationSucceededCbList;
344 DtReserveMultipleNamesCbList myMultipleNamesReservationFailedCbList;
347 std::list<DtFederateSaveCbInfo> myFederateSaveCbList;
348 std::list<DtLabelledFederateSaveCbInfo> myLabFederateSaveCbList;
349 std::list<DtFederateRestoreCbInfo> myFederateRestoreCbList;
350 std::list<DtLabelledFederateRestoreCbInfo> myLabFederateRestoreCbList;
352 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegSucceededCbList;
353 std::list<DtLabelledSynchPointCbInfo> myLabSynchPtRegFailedCbList;
354 std::list<DtLabelledSynchPointCbInfo> myLabFederationSynchedCbList;
355 std::list<DtLabelledAnnounceCbInfo> myLabAnnounceSynchPointCbList;
357 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegSucceededCbList;
358 std::list<DtGeneralSynchPointCbInfo> mySynchPtRegFailedCbList;
359 std::list<DtGeneralSynchPointCbInfo> myFederationSynchedCbList;
360 std::list<DtGeneralAnnounceCbInfo> myAnnounceSynchPointCbList;
362 bool myRemoveObjectOnAttOutOfScope;
365 virtual void applyFedsSynchedCallbacks(
const DtString& label);
366 virtual void applyRegistrationSucceededCallbacks(
const DtString& label);
367 virtual void applyRegistrationFailedCallbacks(
const DtString& label);
370 virtual bool applyAnnounceCallbacks(
const DtString& label,
const RTI::VariableLengthData& tag);
382 virtual void connectionLost(
383 std::wstring
const& faultDescription)
override;
388 virtual void reportFederationExecutions(
389 FederationExecutionInformationVector
const& report)
override;
394 virtual void reportFederationExecutionMembers(
395 std::wstring
const& federationName,
396 FederationExecutionMemberInformationVector
const& report)
override;
401 virtual void reportFederationExecutionDoesNotExist(
402 std::wstring
const& federationName)
override;
407 virtual void federateResigned(
408 std::wstring
const& reasonForResignDescription)
override;
413 virtual void synchronizationPointRegistrationSucceeded(
414 std::wstring
const& synchronizationPointLabel)
override;
420 std::wstring
const& synchronizationPointLabel,
421 SynchronizationPointFailureReason reason)
override;
427 std::wstring
const& synchronizationPointLabel,
428 VariableLengthData
const& userSuppliedTag)
override;
433 virtual void federationSynchronized(
434 std::wstring
const& synchronizationPointLabel,
435 FederateHandleSet
const& failedToSyncSet)
override;
441 std::wstring
const& label)
override;
447 std::wstring
const& label,
448 LogicalTime
const& time)
override;
453 virtual void federationSaved()
override;
458 virtual void federationNotSaved(
459 SaveFailureReason reason)
override;
465 FederateHandleSaveStatusPairVector
const& response)
override;
470 virtual void requestFederationRestoreSucceeded(
471 std::wstring
const& label)
override;
476 virtual void requestFederationRestoreFailed(
477 std::wstring
const& label)
override;
482 virtual void federationRestoreBegun()
override;
488 std::wstring
const& label,
489 std::wstring
const& federateName,
490 FederateHandle
const& postRestoreFederateHandle)
override;
495 virtual void federationRestored()
override;
500 virtual void federationNotRestored(
501 RestoreFailureReason reason)
override;
507 FederateRestoreStatusVector
const& response)
override;
516 virtual void startRegistrationForObjectClass(
517 ObjectClassHandle
const& objectClass)
override;
522 virtual void stopRegistrationForObjectClass(
523 ObjectClassHandle
const& objectClass)
override;
528 virtual void turnInteractionsOn(
529 InteractionClassHandle
const& interactionClass)
override;
534 virtual void turnInteractionsOff(
535 InteractionClassHandle
const& interactionClass)
override;
545 std::wstring
const& objectInstanceName)
override;
551 std::wstring
const& objectInstanceName)
override;
556 virtual void multipleObjectInstanceNameReservationSucceeded(
557 std::set<std::wstring>
const& objectInstanceNames)
override;
562 virtual void multipleObjectInstanceNameReservationFailed(
563 std::set<std::wstring>
const& objectInstanceNames)
override;
570 ObjectInstanceHandle
const& objectInstance,
571 ObjectClassHandle
const& objectClass,
572 std::wstring
const& objectInstanceName,
573 FederateHandle
const& producingFederate)
override;
579 ObjectInstanceHandle
const& objectInstance,
580 AttributeHandleValueMap
const& attributeValues,
581 VariableLengthData
const& userSuppliedTag,
582 TransportationTypeHandle
const& transportationType,
583 FederateHandle
const& producingFederate,
584 RegionHandleSet
const* optionalSentRegions)
override;
590 ObjectInstanceHandle
const& objectInstance,
591 AttributeHandleValueMap
const& attributeValues,
592 VariableLengthData
const& userSuppliedTag,
593 TransportationTypeHandle
const& transportationType,
594 FederateHandle
const& producingFederate,
595 RegionHandleSet
const* optionalSentRegions,
596 LogicalTime
const& time,
597 OrderType sentOrderType,
598 OrderType receivedOrderType,
599 MessageRetractionHandle
const* optionalRetraction)
override;
605 InteractionClassHandle
const& interactionClass,
606 ParameterHandleValueMap
const& parameterValues,
607 VariableLengthData
const& userSuppliedTag,
608 TransportationTypeHandle
const& transportationType,
609 FederateHandle
const& producingFederate,
610 const RegionHandleSet* optionalSentRegions)
override;
616 InteractionClassHandle
const& interactionClass,
617 ParameterHandleValueMap
const& parameterValues,
618 VariableLengthData
const& userSuppliedTag,
619 TransportationTypeHandle
const& transportationType,
620 FederateHandle
const& producingFederate,
621 RegionHandleSet
const* optionalSentRegions,
622 LogicalTime
const& time,
623 OrderType sentOrderType,
624 OrderType receivedOrderType,
625 MessageRetractionHandle
const* optionalRetraction)
override;
630 virtual void receiveDirectedInteraction(
631 InteractionClassHandle
const& interactionClass,
632 ObjectInstanceHandle
const& objectInstance,
633 ParameterHandleValueMap
const& parameterValues,
634 VariableLengthData
const& userSuppliedTag,
635 TransportationTypeHandle
const& transportationType,
636 FederateHandle
const& producingFederate)
override;
641 virtual void receiveDirectedInteraction(
642 InteractionClassHandle
const& interactionClass,
643 ObjectInstanceHandle
const& objectInstance,
644 ParameterHandleValueMap
const& parameterValues,
645 VariableLengthData
const& userSuppliedTag,
646 TransportationTypeHandle
const& transportationType,
647 FederateHandle
const& producingFederate,
648 LogicalTime
const& time,
649 OrderType sentOrderType,
650 OrderType receivedOrderType,
651 MessageRetractionHandle
const* optionalRetraction)
override;
657 ObjectInstanceHandle
const& objectInstance,
658 VariableLengthData
const& userSuppliedTag,
659 FederateHandle
const& producingFederate)
override;
665 ObjectInstanceHandle
const& objectInstance,
666 VariableLengthData
const& userSuppliedTag,
667 FederateHandle
const& producingFederate,
668 LogicalTime
const& time,
669 OrderType sentOrderType,
670 OrderType receivedOrderType,
671 MessageRetractionHandle
const* optionalRetraction)
override;
677 ObjectInstanceHandle
const& objectInstance,
678 AttributeHandleSet
const& attributes)
override;
684 ObjectInstanceHandle
const& objectInstance,
685 AttributeHandleSet
const& attributes)
override;
691 ObjectInstanceHandle
const& objectInstance,
692 AttributeHandleSet
const& attributes,
693 VariableLengthData
const& userSuppliedTag)
override;
699 ObjectInstanceHandle
const& objectInstance,
700 AttributeHandleSet
const& attributes)
override;
706 ObjectInstanceHandle
const& objectInstance,
707 AttributeHandleSet
const& attributes,
708 std::wstring
const& updateRateDesignator)
override;
714 ObjectInstanceHandle
const& objectInstance,
715 AttributeHandleSet
const& attributes)
override;
720 virtual void confirmAttributeTransportationTypeChange(
721 ObjectInstanceHandle
const& objectInstance,
722 AttributeHandleSet
const& attributes,
723 TransportationTypeHandle
const& transportationType)
override;
728 virtual void reportAttributeTransportationType(
729 ObjectInstanceHandle
const& objectInstance,
730 AttributeHandle
const& attribute,
731 TransportationTypeHandle
const& transportationType)
override;
736 virtual void confirmInteractionTransportationTypeChange(
737 InteractionClassHandle
const& interactionClass,
738 TransportationTypeHandle
const& transportationType)
override;
743 virtual void reportInteractionTransportationType(
744 FederateHandle
const& federate,
745 InteractionClassHandle
const& interactionClass,
746 TransportationTypeHandle
const& transportationType)
override;
757 ObjectInstanceHandle
const& objectInstance,
758 AttributeHandleSet
const& offeredAttributes,
759 VariableLengthData
const& userSuppliedTag)
override;
765 ObjectInstanceHandle
const& objectInstance,
766 AttributeHandleSet
const& releasedAttributes,
767 VariableLengthData
const& userSuppliedTag)
override;
773 ObjectInstanceHandle
const& objectInstance,
774 AttributeHandleSet
const& securedAttributes,
775 VariableLengthData
const& userSuppliedTag)
override;
781 ObjectInstanceHandle
const& objectInstance,
782 AttributeHandleSet
const& attributes,
783 VariableLengthData
const& userSuppliedTag)
override;
789 ObjectInstanceHandle
const& objectInstance,
790 AttributeHandleSet
const& candidateAttributes,
791 VariableLengthData
const& userSuppliedTag)
override;
797 ObjectInstanceHandle
const& objectInstance,
798 AttributeHandleSet
const& attributes)
override;
804 ObjectInstanceHandle
const& objectInstance,
805 AttributeHandleSet
const& attributes,
806 FederateHandle
const& owner)
override;
812 ObjectInstanceHandle
const& objectInstance,
813 AttributeHandleSet
const& attributes)
override;
819 ObjectInstanceHandle
const& objectInstance,
820 AttributeHandleSet
const& attributes)
override;
829 virtual void timeRegulationEnabled(
830 LogicalTime
const & time)
override;
835 virtual void timeConstrainedEnabled(
836 LogicalTime
const & time)
override;
841 virtual void flushQueueGrant(
842 LogicalTime
const & time, LogicalTime
const & optimisticTime)
override;
847 virtual void timeAdvanceGrant(
848 LogicalTime
const & time)
override;
853 virtual void requestRetraction(
854 MessageRetractionHandle
const & retraction)
override;
858 bool myWaitingForSave;
859 bool myWaitingForRestore;
virtual void attributeOwnershipUnavailable(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes)
7.10
Definition: nullFederateAmbassador1516.h:524
Instances of DtRegControlCbList are used to provide a list of callbacks (DtRegControlCbInfo) which ar...
Definition: regControlCbList.h:32
virtual void objectInstanceNameReservationFailed(std::wstring const &theObjectInstanceName)
Definition: nullFederateAmbassador1516.h:186
virtual void initiateFederateRestore(std::wstring const &label, RTI::FederateHandle handle)
4.21
Definition: nullFederateAmbassador1516.h:116
virtual void requestDivestitureConfirmation(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes)
7.5
Definition: nullFederateAmbassador1516.h:498
virtual void announceSynchronizationPoint(std::wstring const &label, RTI::VariableLengthData const &theUserSuppliedTag)
4.8
Definition: nullFederateAmbassador1516.h:52
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
virtual void turnUpdatesOffForObjectInstance(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes)
6.20
Definition: nullFederateAmbassador1516.h:470
virtual void confirmAttributeOwnershipAcquisitionCancellation(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes)
7.15
Definition: nullFederateAmbassador1516.h:548
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
virtual void reflectAttributeValues(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleValueMap const &theAttributeValues, RTI::VariableLengthData const &theUserSuppliedTag, RTI::OrderType sentOrder, RTI::TransportationType theType)
6.7
Definition: nullFederateAmbassador1516.h:206
Instances of DtVrlFederateAmbassador are used to manage the interface between the RTI and the VR-Link...
Definition: vrlFederateAmbassador1516.h:44
virtual void federationRestoreStatusResponse(RTI::FederateHandleRestoreStatusPairVector const &theFederateStatusVector)
4.25
Definition: nullFederateAmbassador1516.h:136
DtRegControlCb DtStopRegCb
Definition: regControlCbList.h:25
void(* DtDiscoverObjectCb)(DtHlaObject *obj, void *usr)
Definition: discoverObjectCbInfo.h:20
DtUpdateControlCb DtUpdatesOnCb
Definition: updateControlCbInfo.h:29
void(* DtStartStopInterCb)(RTI::InteractionClassHandle intClass, void *usr)
Definition: startStopInterCbList.h:21
void(* DtReflectAttributeValuesCb)(const DtStateMsg &stateMsg, void *usr)
Definition: reflectAttributeValuesCbList.h:24
DtRegControlCb DtStartRegCb
Definition: regControlCbList.h:24
virtual void discoverObjectInstance(RTI::ObjectInstanceHandle theObject, RTI::ObjectClassHandle theObjectClass, std::wstring const &theObjectInstanceName)
6.5
Definition: nullFederateAmbassador1516.h:195
class DtStartStopInterCbList:
Definition: startStopInterCbList.h:32
virtual void receiveInteraction(RTI::InteractionClassHandle theInteraction, RTI::ParameterHandleValueMap const &theParameterValues, RTI::VariableLengthData const &theUserSuppliedTag, RTI::OrderType sentOrder, RTI::TransportationType theType)
6.9
Definition: nullFederateAmbassador1516.h:300
virtual void attributeOwnershipAcquisitionNotification(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes, RTI::VariableLengthData const &theUserSuppliedTag)
7.7
Definition: nullFederateAmbassador1516.h:510
void(* DtFederateRestoreCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador1516.h:25
void(* DtSynchPointCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador1516.h:29
virtual void attributesOutOfScope(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes)
6.16
Definition: nullFederateAmbassador1516.h:436
virtual void objectInstanceNameReservationSucceeded(std::wstring const &theObjectInstanceName)
! Object Management Services //!
Definition: nullFederateAmbassador1516.h:179
virtual void provideAttributeValueUpdate(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes, RTI::VariableLengthData const &theUserSuppliedTag)
6.18
Definition: nullFederateAmbassador1516.h:447
void(* DtReceiveInteractionCb)(DtInteraction *inter, void *usr)
Definition: receiveInteractionCbInfo.h:23
virtual void attributeIsNotOwned(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandle theAttribute)
Definition: nullFederateAmbassador1516.h:568
virtual void removeObjectInstance(RTI::ObjectInstanceHandle theObject, RTI::VariableLengthData const &theUserSuppliedTag, RTI::OrderType sentOrder)
6.11
Definition: nullFederateAmbassador1516.h:393
Instances of DtReserveNameCbList are used to provide a list of callbacks which are called when the RT...
Definition: reserveNameCbList.h:30
class DtInteractionManager:
Definition: interactionManager.h:25
void(* DtFedTimeCb)(const RTI::LogicalTime &theFedTime, void *theUserData)
Definition: fedTimeCbList.h:21
Instances of DtUpdateControlCbList are used to provide a list of callbacks (DtUpdateControlCbInfo) wh...
Definition: updateControlCbList.h:33
void(* DtReserveNameCb)(const std::wstring &theName, void *theUserData)
Definition: reserveNameCbList.h:22
virtual void synchronizationPointRegistrationFailed(std::wstring const &label, RTI::SynchronizationFailureReason reason)
Definition: nullFederateAmbassador1516.h:45
class DtFedTimeCbList:
Definition: fedTimeCbList.h:35
virtual void turnUpdatesOnForObjectInstance(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes)
6.19
Definition: nullFederateAmbassador1516.h:459
virtual void informAttributeOwnership(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandle theAttribute, RTI::FederateHandle theOwner)
7.17
Definition: nullFederateAmbassador1516.h:559
virtual void requestAttributeOwnershipAssumption(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes, RTI::VariableLengthData const &theUserSuppliedTag)
! Ownership Management Services //!
Definition: nullFederateAmbassador1516.h:485
class DtHlaObjectManager:
Definition: hlaObjectManager.h:30
virtual void attributeIsOwnedByRTI(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandle theAttribute)
Definition: nullFederateAmbassador1516.h:576
virtual void requestAttributeOwnershipRelease(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes, RTI::VariableLengthData const &theUserSuppliedTag)
7.11
Definition: nullFederateAmbassador1516.h:536
Definition: nullFederateAmbassador1516.h:19
std::shared_ptr< DtDDMRegion > DtDDMRegionSP
Definition: region1516.h:29
Instances of DtString are used to represent strings.
Definition: vlString.h:36
Instances of DtReflectAttributeValuesCbList are used to provide a list of callbacks (DtReflectAttribu...
Definition: reflectAttributeValuesCbList.h:31
virtual void attributesInScope(RTI::ObjectInstanceHandle theObject, RTI::AttributeHandleSet const &theAttributes)
6.15
Definition: nullFederateAmbassador1516.h:425
virtual void federationSaveStatusResponse(RTI::FederateHandleSaveStatusPairVector const &theFederateStatusVector)
4.17
Definition: nullFederateAmbassador1516.h:92
DtUpdateControlCb DtUpdatesOffCb
Definition: updateControlCbInfo.h:30
This file is used as a convenience to group RTI related callbacks together.
void(* DtFederateSaveCb)(const char *label, void *usr)
Definition: vrlFederateAmbassador1516.h:21
void(* DtConnectionLostCb)(const std::wstring &faultDescription, void *theUserData)
Definition: connectionLostCbList.h:21
Instances of DtConnectionLostCbList are used to provide a list of callbacks which are called when the...
Definition: connectionLostCbList.h:29
virtual void initiateFederateSave(std::wstring const &label, RTI::LogicalTime const &theTime)
Definition: nullFederateAmbassador1516.h:71
void(* DtRemoveObjectCb)(DtHlaObject *obj, void *usr)
Definition: removeObjectCbInfo.h:22
void(* DtAnnounceSynchPointCb)(const char *label, const RTI::VariableLengthData &tag, void *usr)
Definition: vrlFederateAmbassador1516.h:33