MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
netStatsRtiAmb1516_2025.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
8 #ifdef DtIFSPEC1516_2025
9 
10 #include "ambImp1516_2025.h"
11 #include "netStatsMonitor.h"
12 #include <vlutil/vlTime.h>
13 
14 class DtNetStatsFedAmbWrapper;
15 
16 //
17 // The DtNetStatsRtiAmbImpl adds statistics gathering and logging
18 // capabilities to the DtRtiAmbassadorImplementor class
19 //
20 // DtNetStatsRtiAmbImpl overrides each RTI Ambassador API call
21 // to track its calls and cpu usage
22 //
23 class DtNetStatsRtiAmbImpl : public DtRtiAmbassadorImplementor
24 {
25 
26 protected:
27 
28  DtNetStatsRtiAmbImpl( rti1516_2025::RTIambassador* topLevelAmbPtr);
29 
30 public:
31 
32  // Set the handle to the Network Traffic Monitor
33  virtual void setTrafficMonitor( DtNetStatsMonitor* stats );
34 
35  // Over-ridden RTI API Calls
36 
37  virtual ~DtNetStatsRtiAmbImpl();
38 
39  virtual bool netStatsEnabled() const;
40  virtual void setNetStatsEnabled(bool shouldEnable);
41 
42  // Initializes the high performance timer (must be paired with endTimerAndRecord)
43  virtual void startTimer();
44  virtual void startTimer() const;
45 
46  // Records the service and the elapsed time (must be paired with startTimer)
47  virtual void endTimerAndRecord(DtRtiAmbAPIType rtiAmbType);
48  virtual void endTimerAndRecord(DtRtiAmbAPIType rtiAmbType) const;
49 
53 
64  virtual rti1516_2025::ConfigurationResult connect(
65  rti1516_2025::FederateAmbassador& federateAmbassador,
66  rti1516_2025::CallbackModel theCallbackModel,
67  rti1516_2025::RtiConfiguration const* configuration = nullptr,
68  rti1516_2025::Credentials const* credentials = nullptr);
69 
76  virtual void disconnect();
77 
94  virtual void createFederationExecution(
95  std::wstring const& federationName,
96  std::wstring const& fomModule,
97  std::wstring const& logicalTimeImplementationName = L"");
98 
111  virtual void createFederationExecution(
112  std::wstring const& federationName,
113  std::vector<std::wstring> const& fomModules,
114  std::wstring const& logicalTimeImplementationName = L"");
115 
131  virtual void createFederationExecutionWithMIM(
132  std::wstring const& federationName,
133  std::vector<std::wstring> const& fomModules,
134  std::wstring const& mimModule,
135  std::wstring const& logicalTimeImplementationName = L"");
136 
145  virtual void destroyFederationExecution(
146  std::wstring const& federationName);
147 
153  virtual void listFederationExecutions();
154 
160  virtual void listFederationExecutionMembers(std::wstring const& federationName);
161 
178  virtual rti1516_2025::FederateHandle joinFederationExecution(
179  std::wstring const& federateName,
180  std::wstring const& federateType,
181  std::wstring const& federationExecutionName,
182  std::vector<std::wstring> const& additionalFomModules,
183  unsigned long flags);
184 
195  virtual void resignFederationExecution(
196  rti1516_2025::ResignAction resignAction);
197 
206  virtual void registerFederationSynchronizationPoint(
207  std::wstring const& synchronizationPointLabel,
208  rti1516_2025::VariableLengthData const& userSuppliedTag);
209 
219  virtual void registerFederationSynchronizationPoint(
220  std::wstring const& synchronizationPointLabel,
221  rti1516_2025::VariableLengthData const& userSuppliedTag,
222  rti1516_2025::FederateHandleSet const& synchronizationSet);
223 
233  virtual void synchronizationPointAchieved(
234  std::wstring const& synchronizationPointLabel,
235  bool successfully = true);
236 
245  virtual void requestFederationSave(
246  std::wstring const& label);
247 
259  virtual void requestFederationSave(
260  std::wstring const& label,
261  rti1516_2025::LogicalTime const& time);
262 
271  virtual void federateSaveBegun();
272 
281  virtual void federateSaveComplete();
282 
291  virtual void federateSaveNotComplete();
292 
300  virtual void abortFederationSave();
301 
309  virtual void queryFederationSaveStatus();
310 
319  virtual void requestFederationRestore(
320  std::wstring const& label);
321 
330  virtual void federateRestoreComplete();
331 
340  virtual void federateRestoreNotComplete();
341 
349  virtual void abortFederationRestore();
350 
358  virtual void queryFederationRestoreStatus();
359 
363 
374  virtual void publishObjectClassAttributes(
375  rti1516_2025::ObjectClassHandle const& objectClass,
376  rti1516_2025::AttributeHandleSet const& attributes);
377 
388  virtual void unpublishObjectClass(
389  rti1516_2025::ObjectClassHandle const& objectClass);
390 
402  virtual void unpublishObjectClassAttributes(
403  rti1516_2025::ObjectClassHandle const& objectClass,
404  rti1516_2025::AttributeHandleSet const& attributes);
405 
415  virtual void publishInteractionClass(
416  rti1516_2025::InteractionClassHandle const& interactionClass);
417 
427  virtual void unpublishInteractionClass(
428  rti1516_2025::InteractionClassHandle const& interactionClass);
429 
440  virtual void publishObjectClassDirectedInteractions(
441  rti1516_2025::ObjectClassHandle const& objectClass,
442  rti1516_2025::InteractionClassHandleSet const& interactionClasses);
443 
453  virtual void unpublishObjectClassDirectedInteractions(
454  rti1516_2025::ObjectClassHandle const& objectClass);
455 
466  virtual void unpublishObjectClassDirectedInteractions(
467  rti1516_2025::ObjectClassHandle const& objectClass,
468  rti1516_2025::InteractionClassHandleSet const& interactionClasses);
469 
480  virtual void subscribeObjectClassAttributes(
481  rti1516_2025::ObjectClassHandle const& objectClass,
482  rti1516_2025::AttributeHandleSet const& attributes,
483  bool active = true,
484  std::wstring const& updateRateDesignator = L"");
485 
495  virtual void unsubscribeObjectClass(
496  rti1516_2025::ObjectClassHandle const& objectClass);
497 
508  virtual void unsubscribeObjectClassAttributes(
509  rti1516_2025::ObjectClassHandle const& objectClass,
510  rti1516_2025::AttributeHandleSet const& attributes);
511 
522  virtual void subscribeInteractionClass(
523  rti1516_2025::InteractionClassHandle const& interactionClass,
524  bool active = true);
525 
535  virtual void unsubscribeInteractionClass(
536  rti1516_2025::InteractionClassHandle const& interactionClass);
537 
548  virtual void subscribeObjectClassDirectedInteractions(
549  rti1516_2025::ObjectClassHandle const& objectClass,
550  rti1516_2025::InteractionClassHandleSet const& interactionClasses,
551  bool universally = false);
552 
562  virtual void unsubscribeObjectClassDirectedInteractions(
563  rti1516_2025::ObjectClassHandle const& objectClass);
564 
575  virtual void unsubscribeObjectClassDirectedInteractions(
576  rti1516_2025::ObjectClassHandle const& objectClass,
577  rti1516_2025::InteractionClassHandleSet const& interactionClasses);
578 
579 
583 
593  virtual void reserveObjectInstanceName(
594  std::wstring const& objectInstanceName);
595 
605  virtual void releaseObjectInstanceName(
606  std::wstring const& objectInstanceName);
607 
618  virtual void reserveMultipleObjectInstanceNames(
619  std::set<std::wstring> const& objectInstanceNames);
620 
630  virtual void releaseMultipleObjectInstanceNames(
631  std::set<std::wstring> const& objectInstanceNames);
632 
643  virtual rti1516_2025::ObjectInstanceHandle registerObjectInstance(
644  rti1516_2025::ObjectClassHandle const& objectClass);
645 
658  virtual rti1516_2025::ObjectInstanceHandle registerObjectInstance(
659  rti1516_2025::ObjectClassHandle const& objectClass,
660  std::wstring const& objectInstanceName);
661 
673  virtual void updateAttributeValues(
674  rti1516_2025::ObjectInstanceHandle const& objectInstance,
675  rti1516_2025::AttributeHandleValueMap const& attributeValues,
676  rti1516_2025::VariableLengthData const& userSuppliedTag);
677 
690  virtual rti1516_2025::MessageRetractionHandle updateAttributeValues(
691  rti1516_2025::ObjectInstanceHandle const& objectInstance,
692  rti1516_2025::AttributeHandleValueMap const& attributeValues,
693  rti1516_2025::VariableLengthData const& userSuppliedTag,
694  rti1516_2025::LogicalTime const& time);
695 
707  virtual void sendInteraction(
708  rti1516_2025::InteractionClassHandle const& interactionClass,
709  rti1516_2025::ParameterHandleValueMap const& parameterValues,
710  rti1516_2025::VariableLengthData const& userSuppliedTag);
711 
724  virtual rti1516_2025::MessageRetractionHandle sendInteraction(
725  rti1516_2025::InteractionClassHandle const& interactionClass,
726  rti1516_2025::ParameterHandleValueMap const& parameterValues,
727  rti1516_2025::VariableLengthData const& userSuppliedTag,
728  rti1516_2025::LogicalTime const& time);
729 
742  virtual void sendDirectedInteraction(
743  rti1516_2025::InteractionClassHandle const& interactionClass,
744  rti1516_2025::ObjectInstanceHandle const& objectInstance,
745  rti1516_2025::ParameterHandleValueMap const& parameterValues,
746  rti1516_2025::VariableLengthData const& userSuppliedTag);
747 
761  virtual rti1516_2025::MessageRetractionHandle sendDirectedInteraction(
762  rti1516_2025::InteractionClassHandle const& interactionClass,
763  rti1516_2025::ObjectInstanceHandle const& objectInstance,
764  rti1516_2025::ParameterHandleValueMap const& parameterValues,
765  rti1516_2025::VariableLengthData const& userSuppliedTag,
766  rti1516_2025::LogicalTime const& time);
767 
778  virtual void deleteObjectInstance(
779  rti1516_2025::ObjectInstanceHandle const& objectInstance,
780  rti1516_2025::VariableLengthData const& userSuppliedTag);
781 
793  virtual rti1516_2025::MessageRetractionHandle deleteObjectInstance(
794  rti1516_2025::ObjectInstanceHandle const& objectInstance,
795  rti1516_2025::VariableLengthData const& userSuppliedTag,
796  rti1516_2025::LogicalTime const& time);
797 
809  virtual void localDeleteObjectInstance(
810  rti1516_2025::ObjectInstanceHandle const& objectInstance);
811 
822  virtual void requestAttributeValueUpdate(
823  rti1516_2025::ObjectInstanceHandle const& objectInstance,
824  rti1516_2025::AttributeHandleSet const& attributes,
825  rti1516_2025::VariableLengthData const& userSuppliedTag);
826 
837  virtual void requestAttributeValueUpdate(
838  rti1516_2025::ObjectClassHandle const& objectClass,
839  rti1516_2025::AttributeHandleSet const& attributes,
840  rti1516_2025::VariableLengthData const& userSuppliedTag);
841 
855  virtual void requestAttributeTransportationTypeChange(
856  rti1516_2025::ObjectInstanceHandle const& objectInstance,
857  rti1516_2025::AttributeHandleSet const& attributes,
858  rti1516_2025::TransportationTypeHandle const& transportationType);
859 
872  virtual void changeDefaultAttributeTransportationType(
873  rti1516_2025::ObjectClassHandle const& objectClass,
874  rti1516_2025::AttributeHandleSet const& attributes,
875  rti1516_2025::TransportationTypeHandle const& transportationType);
876 
887  virtual void queryAttributeTransportationType(
888  rti1516_2025::ObjectInstanceHandle const& objectInstance,
889  rti1516_2025::AttributeHandle const& attribute);
890 
903  virtual void requestInteractionTransportationTypeChange(
904  rti1516_2025::InteractionClassHandle const& interactionClass,
905  rti1516_2025::TransportationTypeHandle const& transportationType);
906 
916  virtual void queryInteractionTransportationType(
917  rti1516_2025::FederateHandle const& federate,
918  rti1516_2025::InteractionClassHandle const& interactionClass);
919 
920 
924 
936  virtual void unconditionalAttributeOwnershipDivestiture(
937  rti1516_2025::ObjectInstanceHandle const& objectInstance,
938  rti1516_2025::AttributeHandleSet const& attributes,
939  rti1516_2025::VariableLengthData const& userSuppliedTag);
940 
953  virtual void negotiatedAttributeOwnershipDivestiture(
954  rti1516_2025::ObjectInstanceHandle const& objectInstance,
955  rti1516_2025::AttributeHandleSet const& attributes,
956  rti1516_2025::VariableLengthData const& userSuppliedTag);
957 
971  virtual void confirmDivestiture(
972  rti1516_2025::ObjectInstanceHandle const& objectInstance,
973  rti1516_2025::AttributeHandleSet const& confirmedAttributes,
974  rti1516_2025::VariableLengthData const& userSuppliedTag);
975 
989  virtual void attributeOwnershipAcquisition(
990  rti1516_2025::ObjectInstanceHandle const& objectInstance,
991  rti1516_2025::AttributeHandleSet const& desiredAttributes,
992  rti1516_2025::VariableLengthData const& userSuppliedTag);
993 
1008  virtual void attributeOwnershipAcquisitionIfAvailable(
1009  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1010  rti1516_2025::AttributeHandleSet const& desiredAttributes,
1011  rti1516_2025::VariableLengthData const& userSuppliedTag);
1012 
1024  virtual void attributeOwnershipReleaseDenied(
1025  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1026  rti1516_2025::AttributeHandleSet const& attributes,
1027  rti1516_2025::VariableLengthData const& userSuppliedTag);
1028 
1040  virtual void attributeOwnershipDivestitureIfWanted(
1041  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1042  rti1516_2025::AttributeHandleSet const& attributes,
1043  rti1516_2025::VariableLengthData const& userSuppliedTag,
1044  rti1516_2025::AttributeHandleSet& divestedAttributes); // filled by RTI;
1045 
1058  virtual void cancelNegotiatedAttributeOwnershipDivestiture(
1059  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1060  rti1516_2025::AttributeHandleSet const& attributes);
1061 
1074  virtual void cancelAttributeOwnershipAcquisition(
1075  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1076  rti1516_2025::AttributeHandleSet const& attributes);
1077 
1088  virtual void queryAttributeOwnership(
1089  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1090  rti1516_2025::AttributeHandleSet const& attributes);
1091 
1102  virtual bool isAttributeOwnedByFederate(
1103  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1104  rti1516_2025::AttributeHandle const& attribute);
1105 
1109 
1122  virtual void enableTimeRegulation(
1123  rti1516_2025::LogicalTimeInterval const& lookahead);
1124 
1134  virtual void disableTimeRegulation();
1135 
1147  virtual void enableTimeConstrained();
1148 
1158  virtual void disableTimeConstrained();
1159 
1173  virtual void timeAdvanceRequest(
1174  rti1516_2025::LogicalTime const& time);
1175 
1189  virtual void timeAdvanceRequestAvailable(
1190  rti1516_2025::LogicalTime const& time);
1191 
1205  virtual void nextMessageRequest(
1206  rti1516_2025::LogicalTime const& time);
1207 
1221  virtual void nextMessageRequestAvailable(
1222  rti1516_2025::LogicalTime const& time);
1223 
1237  virtual void flushQueueRequest(
1238  rti1516_2025::LogicalTime const& time);
1239 
1249  virtual void enableAsynchronousDelivery();
1250 
1260  virtual void disableAsynchronousDelivery();
1261 
1270  virtual bool queryGALT(rti1516_2025::LogicalTime& time);
1271 
1280  virtual void queryLogicalTime(rti1516_2025::LogicalTime& time);
1281 
1290  virtual bool queryLITS(rti1516_2025::LogicalTime& time);
1291 
1303  virtual void modifyLookahead(
1304  rti1516_2025::LogicalTimeInterval const& lookahead);
1305 
1315  virtual void queryLookahead(rti1516_2025::LogicalTimeInterval& interval);
1316 
1328  virtual void retract(
1329  rti1516_2025::MessageRetractionHandle const& retraction);
1330 
1342  virtual void changeAttributeOrderType(
1343  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1344  rti1516_2025::AttributeHandleSet const& attributes,
1345  rti1516_2025::OrderType orderType);
1346 
1357  virtual void changeDefaultAttributeOrderType(
1358  rti1516_2025::ObjectClassHandle const& objectClass,
1359  rti1516_2025::AttributeHandleSet const& attributes,
1360  rti1516_2025::OrderType orderType);
1361 
1372  virtual void changeInteractionOrderType(
1373  rti1516_2025::InteractionClassHandle const& interactionClass,
1374  rti1516_2025::OrderType orderType);
1375 
1379 
1389  virtual rti1516_2025::RegionHandle createRegion(
1390  rti1516_2025::DimensionHandleSet const& dimensions);
1391 
1402  virtual void commitRegionModifications(
1403  rti1516_2025::RegionHandleSet const& regions);
1404 
1416  virtual void deleteRegion(
1417  rti1516_2025::RegionHandle const& region);
1418 
1434  virtual rti1516_2025::ObjectInstanceHandle registerObjectInstanceWithRegions(
1435  rti1516_2025::ObjectClassHandle const& objectClass,
1436  rti1516_2025::AttributeHandleSetRegionHandleSetPairVector const& attributesAndRegions);
1437 
1455  virtual rti1516_2025::ObjectInstanceHandle registerObjectInstanceWithRegions(
1456  rti1516_2025::ObjectClassHandle const& objectClass,
1458  std::wstring const& objectInstanceName);
1459 
1473  virtual void associateRegionsForUpdates(
1474  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1475  rti1516_2025::AttributeHandleSetRegionHandleSetPairVector const& attributesAndRegions);
1476 
1489  virtual void unassociateRegionsForUpdates(
1490  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1491  rti1516_2025::AttributeHandleSetRegionHandleSetPairVector const& attributesAndRegions);
1492 
1506  virtual void subscribeObjectClassAttributesWithRegions(
1507  rti1516_2025::ObjectClassHandle const& objectClass,
1509  bool active = true,
1510  std::wstring const& updateRateDesignator = L"");
1511 
1512 
1525  virtual void unsubscribeObjectClassAttributesWithRegions(
1526  rti1516_2025::ObjectClassHandle const& objectClass,
1527  rti1516_2025::AttributeHandleSetRegionHandleSetPairVector const& attributesAndRegions);
1528 
1542  virtual void subscribeInteractionClassWithRegions(
1543  rti1516_2025::InteractionClassHandle const& interactionClass,
1544  rti1516_2025::RegionHandleSet const& regions,
1545  bool active = true);
1546 
1560  virtual void unsubscribeInteractionClassWithRegions(
1561  rti1516_2025::InteractionClassHandle const& interactionClass,
1562  rti1516_2025::RegionHandleSet const& regions);
1563 
1578  virtual void sendInteractionWithRegions(
1579  rti1516_2025::InteractionClassHandle const& interactionClass,
1580  rti1516_2025::ParameterHandleValueMap const& parameterValues,
1581  rti1516_2025::RegionHandleSet const& regions,
1582  rti1516_2025::VariableLengthData const& userSuppliedTag);
1583 
1599  virtual rti1516_2025::MessageRetractionHandle sendInteractionWithRegions(
1600  rti1516_2025::InteractionClassHandle const& interactionClass,
1601  rti1516_2025::ParameterHandleValueMap const& parameterValues,
1602  rti1516_2025::RegionHandleSet const& regions,
1603  rti1516_2025::VariableLengthData const& userSuppliedTag,
1604  rti1516_2025::LogicalTime const& time);
1605 
1619  virtual void requestAttributeValueUpdateWithRegions(
1620  rti1516_2025::ObjectClassHandle const& objectClass,
1622  rti1516_2025::VariableLengthData const& userSuppliedTag);
1623 
1627 
1635  virtual rti1516_2025::FederateHandle getFederateHandle(
1636  std::wstring const& federateName);
1637 
1646  virtual std::wstring getFederateName(
1647  rti1516_2025::FederateHandle const& federate);
1648 
1656  virtual rti1516_2025::ObjectClassHandle getObjectClassHandle(
1657  std::wstring const& objectClassName);
1658 
1666  virtual std::wstring getObjectClassName(
1667  rti1516_2025::ObjectClassHandle const& objectClass);
1668 
1676  virtual rti1516_2025::ObjectClassHandle getKnownObjectClassHandle(
1677  rti1516_2025::ObjectInstanceHandle const& objectInstance);
1678 
1686  virtual rti1516_2025::ObjectInstanceHandle getObjectInstanceHandle(
1687  std::wstring const& objectInstanceName);
1688 
1696  virtual std::wstring getObjectInstanceName(
1697  rti1516_2025::ObjectInstanceHandle const& objectInstance);
1698 
1707  virtual rti1516_2025::AttributeHandle getAttributeHandle(
1708  rti1516_2025::ObjectClassHandle const& objectClass,
1709  std::wstring const& attributeName);
1710 
1720  virtual std::wstring getAttributeName(
1721  rti1516_2025::ObjectClassHandle const& objectClass,
1722  rti1516_2025::AttributeHandle const& attribute);
1723 
1731  virtual double getUpdateRateValue(
1732  std::wstring const& updateRateDesignator);
1733 
1742  virtual double getUpdateRateValueForAttribute(
1743  rti1516_2025::ObjectInstanceHandle const& objectInstance,
1744  rti1516_2025::AttributeHandle const& attribute);
1745 
1753  virtual rti1516_2025::InteractionClassHandle getInteractionClassHandle(
1754  std::wstring const& interactionClassName);
1755 
1763  virtual std::wstring getInteractionClassName(
1764  rti1516_2025::InteractionClassHandle const& interactionClass);
1765 
1774  virtual rti1516_2025::ParameterHandle getParameterHandle(
1775  rti1516_2025::InteractionClassHandle const& interactionClass,
1776  std::wstring const& parameterName);
1777 
1787  virtual std::wstring getParameterName(
1788  rti1516_2025::InteractionClassHandle const& interactionClass,
1789  rti1516_2025::ParameterHandle const& parameter);
1790 
1798  virtual rti1516_2025::OrderType getOrderType(
1799  std::wstring const& orderTypeName);
1800 
1808  virtual std::wstring getOrderName(
1809  rti1516_2025::OrderType orderType);
1810 
1818  virtual rti1516_2025::TransportationTypeHandle getTransportationTypeHandle(
1819  std::wstring const& transportationTypeName);
1820 
1828  virtual std::wstring getTransportationTypeName(
1829  rti1516_2025::TransportationTypeHandle const& transportationType);
1830 
1838  virtual rti1516_2025::DimensionHandleSet getAvailableDimensionsForObjectClass(
1839  rti1516_2025::ObjectClassHandle const& objectClass);
1840 
1848  virtual rti1516_2025::DimensionHandleSet getAvailableDimensionsForInteractionClass(
1849  rti1516_2025::InteractionClassHandle const& interactionClass);
1850 
1858  virtual rti1516_2025::DimensionHandle getDimensionHandle(
1859  std::wstring const& dimensionName);
1860 
1868  virtual std::wstring getDimensionName(
1869  rti1516_2025::DimensionHandle const& dimension);
1870 
1878  virtual unsigned long getDimensionUpperBound(
1879  rti1516_2025::DimensionHandle const& dimension);
1880 
1890  virtual rti1516_2025::DimensionHandleSet getDimensionHandleSet(
1891  rti1516_2025::RegionHandle const& region);
1892 
1903  virtual rti1516_2025::RangeBounds getRangeBounds(
1904  rti1516_2025::RegionHandle const& region,
1905  rti1516_2025::DimensionHandle const& dimension);
1906 
1919  virtual void setRangeBounds(
1920  rti1516_2025::RegionHandle const& region,
1921  rti1516_2025::DimensionHandle const& dimension,
1922  rti1516_2025::RangeBounds const& rangeBounds);
1923 
1931  virtual unsigned long normalizeServiceGroup(
1932  rti1516_2025::ServiceGroup serviceGroup);
1933 
1941  virtual unsigned long normalizeFederateHandle(
1942  rti1516_2025::FederateHandle const& federate);
1943 
1951  virtual unsigned long normalizeObjectClassHandle(
1952  rti1516_2025::ObjectClassHandle const& objectClass);
1953 
1961  virtual unsigned long normalizeInteractionClassHandle(
1962  rti1516_2025::InteractionClassHandle const& interactionClass);
1963 
1971  virtual unsigned long normalizeObjectInstanceHandle(
1972  rti1516_2025::ObjectInstanceHandle const& objectInstance);
1973 
1982  virtual bool getObjectClassRelevanceAdvisorySwitch() const;
1983 
1992  virtual void setObjectClassRelevanceAdvisorySwitch(bool switchValue);
1993 
2002  virtual bool getAttributeRelevanceAdvisorySwitch() const;
2003 
2012  virtual void setAttributeRelevanceAdvisorySwitch(bool switchValue);
2013 
2022  virtual bool getAttributeScopeAdvisorySwitch() const;
2023 
2032  virtual void setAttributeScopeAdvisorySwitch(bool switchValue);
2033 
2042  virtual bool getInteractionRelevanceAdvisorySwitch() const;
2043 
2052  virtual void setInteractionRelevanceAdvisorySwitch(bool switchValue);
2053 
2062  virtual bool getConveyRegionDesignatorSetsSwitch() const;
2063 
2072  virtual void setConveyRegionDesignatorSetsSwitch(bool switchValue);
2073 
2082  virtual rti1516_2025::ResignAction getAutomaticResignDirective();
2083 
2093  virtual void setAutomaticResignDirective(
2094  rti1516_2025::ResignAction resignAction);
2095 
2104  virtual bool getServiceReportingSwitch() const;
2105 
2115  virtual void setServiceReportingSwitch(bool switchValue);
2116 
2125  virtual bool getExceptionReportingSwitch() const;
2126 
2135  virtual void setExceptionReportingSwitch(bool switchValue);
2136 
2145  virtual bool getSendServiceReportsToFileSwitch() const;
2146 
2155  virtual void setSendServiceReportsToFileSwitch(bool switchValue);
2156 
2165  virtual bool getAutoProvideSwitch() const;
2166 
2175  virtual bool getDelaySubscriptionEvaluationSwitch() const;
2176 
2185  virtual bool getAdvisoriesUseKnownClassSwitch() const;
2186 
2195  virtual bool getAllowRelaxedDDMSwitch() const;
2196 
2205  virtual bool getNonRegulatedGrantSwitch() const;
2206 
2212  virtual bool evokeCallback(
2213  double approximateMinimumTimeInSeconds,
2214  bool unlockWhileWaiting = false);
2215 
2221  virtual bool evokeMultipleCallbacks(
2222  double approximateMinimumTimeInSeconds,
2223  double approximateMaximumTimeInSeconds,
2224  bool unlockWhileWaiting = false);
2225 
2232  virtual void enableCallbacks();
2233 
2240  virtual void disableCallbacks();
2241 
2242  // API-specific services
2243 
2245  virtual DtRtiApiUniquePtr<rti1516_2025::LogicalTimeFactory> getTimeFactory() const;
2246 
2248  virtual rti1516_2025::FederateHandle decodeFederateHandle(
2249  rti1516_2025::VariableLengthData const& encodedValue) const;
2250 
2251  virtual rti1516_2025::ObjectClassHandle decodeObjectClassHandle(
2252  rti1516_2025::VariableLengthData const& encodedValue) const;
2253 
2254  virtual rti1516_2025::InteractionClassHandle decodeInteractionClassHandle(
2255  rti1516_2025::VariableLengthData const& encodedValue) const;
2256 
2257  virtual rti1516_2025::ObjectInstanceHandle decodeObjectInstanceHandle(
2258  rti1516_2025::VariableLengthData const& encodedValue) const;
2259 
2260  virtual rti1516_2025::AttributeHandle decodeAttributeHandle(
2261  rti1516_2025::VariableLengthData const& encodedValue) const;
2262 
2263  virtual rti1516_2025::ParameterHandle decodeParameterHandle(
2264  rti1516_2025::VariableLengthData const& encodedValue) const;
2265 
2266  virtual rti1516_2025::DimensionHandle decodeDimensionHandle(
2267  rti1516_2025::VariableLengthData const& encodedValue) const;
2268 
2269  virtual rti1516_2025::MessageRetractionHandle decodeMessageRetractionHandle(
2270  rti1516_2025::VariableLengthData const& encodedValue) const;
2271 
2272  virtual rti1516_2025::RegionHandle decodeRegionHandle(
2273  rti1516_2025::VariableLengthData const& encodedValue) const;
2274 
2275 public:
2276 
2277  // Creates an instance of a DtRtiAmbassadorImplementor
2278  static DtRtiAmbassadorImplementor* create(rti1516_2025::RTIambassador* topLevelAmbPtr);
2279 
2280 protected:
2281 
2283  virtual void clearManagers();
2284 
2285 protected:
2286 
2287  // Wrapper to capture statistics for federate ambassador calls
2288  DtNetStatsFedAmbWrapper* myStatisticsFedAmb;
2289  const DtString myStatisticsFedAmbName;
2290 
2291  // Statistics Log
2292  DtNetStatsMonitor* myNetStats;
2293 
2294  // API Call Timer
2295  MAKRti::DtClock myTimer;
2296 
2297  DtTime myStartTime;
2298 
2299  // Enable/Disable flag for network statistics
2300  bool myNetStatsEnabled;
2301 
2302 };
2303 
2304 #endif // DtIFSPEC1516_2025
OrderType
Definition: datatypes.pb.h:472
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:35
Definition: netStatsMonitor.h:33
ServiceGroup
Definition: datatypes.pb.h:497
CallbackModel
Definition: datatypes.pb.h:280
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:39
std::vector< AttributeHandleSetRegionHandleSetPair > AttributeHandleSetRegionHandleSetPairVector
Definition: Typedefs.h:57
An abstract base class which must be implemented, and used by a federate.
DtRtiAmbAPIType
Definition: rtiAmbAPITypes.h:12
ResignAction
Definition: datatypes.pb.h:305
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:44
std::set< FederateHandle > FederateHandleSet
Definition: Typedefs.h:37
std::set< DimensionHandle > DimensionHandleSet
Definition: Typedefs.h:38
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:49

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)