MAK RTIspy API Documentation for HLA 4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
netStatsFedAmb1516_2025.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
7 #ifdef DtIFSPEC1516_2025
8 
9 #include "rtiMsConfig.h"
10 #include "fedAmbWrap1516_2025.h"
11 #include <vlutil/vlTime.h>
12 #include "fedMgr.h"
13 #include <rtiutil/fedAmbAPITypes.h>
14 
15 // Forward References
16 class DtNetStatsMonitor;
17 
18 class DtNetStatsFedAmbWrapper : public DtFedAmbWrapper
19 {
20 public:
21  DtNetStatsFedAmbWrapper(DtFederateMgr* mgr, DtTime start);
22 
23  virtual ~DtNetStatsFedAmbWrapper();
24 
25  bool subscriptionsChanged();
26 
27  // Set the handle to the Network Traffic Monitor
28  virtual void setTrafficMonitor( DtNetStatsMonitor* stats );
29 
30  virtual bool netStatsEnabled() const;
31  virtual void setNetStatsEnabled(bool shouldEnable);
32 
33  // Initializes the high performance timer (must be paired with endTimerAndRecord)
34  virtual void startTimer();
35 
36  // Records the service and the elapsed time (must be paired with startTimer)
37  virtual void endTimerAndRecord(DtFedAmbAPIType fedAmbType);
38 
39 protected:
40 
41  // Simple event processing ignores additional reflect parameters
42  virtual void processReflectAttributeValues(rti1516_2025::ObjectInstanceHandle const& theObject);
43 
44  // Simple event processing ignores additional receive parameters
45  virtual void processReceiveInteraction(rti1516_2025::InteractionClassHandle const& theInteraction);
46 
47  // Simple event processing ignores additional receive parameters
48  virtual void processReceiveDirectedInteraction(rti1516_2025::InteractionClassHandle const& theInteraction);
49 
50  // Simple event processing ignores additional remove parameters
51  virtual void processRemoveObjectInstance(rti1516_2025::ObjectInstanceHandle const& theObject);
52 
53 protected:
54 
55  MAKRti::DtTime myStartTime;
56  MAKRti::DtClock myClock;
57  DtFederateMgr* myMgr;
58  bool mySubscriptionsChanged;
59 
60  // Statistics Log
61  DtNetStatsMonitor* myNetStats;
62 
63  // API Call Timer
64  MAKRti::DtClock myTimer;
65 
66  // Enable/Disable flag for network statistics
67  bool myNetStatsEnabled;
68 
69 public:
71  // Federation Management Services //
73 
77  virtual void connectionLost(
78  std::wstring const& faultDescription) override;
79 
83  virtual void reportFederationExecutions(
85 
89  virtual void reportFederationExecutionMembers(
90  std::wstring const& federationName,
92 
96  virtual void reportFederationExecutionDoesNotExist(
97  std::wstring const& federationName) override;
98 
102  virtual void federateResigned(
103  std::wstring const& reasonForResignDescription) override;
104 
109  std::wstring const& synchronizationPointLabel) override;
110 
115  std::wstring const& synchronizationPointLabel,
117 
121  virtual void announceSynchronizationPoint(
122  std::wstring const& synchronizationPointLabel,
123  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
124 
128  virtual void federationSynchronized(
129  std::wstring const& synchronizationPointLabel,
130  rti1516_2025::FederateHandleSet const& failedToSyncSet) override;
131 
135  virtual void initiateFederateSave(
136  std::wstring const& label) override;
137 
141  virtual void initiateFederateSave(
142  std::wstring const& label,
143  rti1516_2025::LogicalTime const& time) override;
144 
148  virtual void federationSaved() override;
149 
153  virtual void federationNotSaved(
154  rti1516_2025::SaveFailureReason reason) override;
155 
159  virtual void federationSaveStatusResponse(
160  rti1516_2025::FederateHandleSaveStatusPairVector const& response) override;
161 
166  std::wstring const& label) override;
167 
171  virtual void requestFederationRestoreFailed(
172  std::wstring const& label) override;
173 
177  virtual void federationRestoreBegun() override;
178 
182  virtual void initiateFederateRestore(
183  std::wstring const& label,
184  std::wstring const& federateName,
185  rti1516_2025::FederateHandle const& postRestoreFederateHandle) override;
186 
190  virtual void federationRestored() override;
191 
195  virtual void federationNotRestored(
196  rti1516_2025::RestoreFailureReason reason) override;
197 
201  virtual void federationRestoreStatusResponse(
202  rti1516_2025::FederateRestoreStatusVector const& response) override;
203 
205  // Declaration Management Services //
207 
211  virtual void startRegistrationForObjectClass(
212  rti1516_2025::ObjectClassHandle const& objectClass) override;
213 
217  virtual void stopRegistrationForObjectClass(
218  rti1516_2025::ObjectClassHandle const& objectClass) override;
219 
223  virtual void turnInteractionsOn(
224  rti1516_2025::InteractionClassHandle const& interactionClass) override;
225 
229  virtual void turnInteractionsOff(
230  rti1516_2025::InteractionClassHandle const& interactionClass) override;
231 
233  // Object Management Services //
235 
239  virtual void objectInstanceNameReservationSucceeded(
240  std::wstring const& objectInstanceName) override;
241 
245  virtual void objectInstanceNameReservationFailed(
246  std::wstring const& objectInstanceName) override;
247 
251  virtual void multipleObjectInstanceNameReservationSucceeded(
252  std::set<std::wstring> const& objectInstanceNames) override;
253 
257  virtual void multipleObjectInstanceNameReservationFailed(
258  std::set<std::wstring> const& objectInstanceNames) override;
259 
260 
264  virtual void discoverObjectInstance(
265  rti1516_2025::ObjectInstanceHandle const& objectInstance,
266  rti1516_2025::ObjectClassHandle const& objectClass,
267  std::wstring const& objectInstanceName,
268  rti1516_2025::FederateHandle const& producingFederate) override;
269 
273  virtual void reflectAttributeValues(
274  rti1516_2025::ObjectInstanceHandle const& objectInstance,
275  rti1516_2025::AttributeHandleValueMap const& attributeValues,
276  rti1516_2025::VariableLengthData const& userSuppliedTag,
277  rti1516_2025::TransportationTypeHandle const& transportationType,
278  rti1516_2025::FederateHandle const& producingFederate,
279  rti1516_2025::RegionHandleSet const* optionalSentRegions) override;
280 
284  virtual void reflectAttributeValues(
285  rti1516_2025::ObjectInstanceHandle const& objectInstance,
286  rti1516_2025::AttributeHandleValueMap const& attributeValues,
287  rti1516_2025::VariableLengthData const& userSuppliedTag,
288  rti1516_2025::TransportationTypeHandle const& transportationType,
289  rti1516_2025::FederateHandle const& producingFederate,
290  rti1516_2025::RegionHandleSet const* optionalSentRegions,
291  rti1516_2025::LogicalTime const& time,
292  rti1516_2025::OrderType sentOrderType,
293  rti1516_2025::OrderType receivedOrderType,
294  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
295 
299  virtual void receiveInteraction(
300  rti1516_2025::InteractionClassHandle const& interactionClass,
301  rti1516_2025::ParameterHandleValueMap const& parameterValues,
302  rti1516_2025::VariableLengthData const& userSuppliedTag,
303  rti1516_2025::TransportationTypeHandle const& transportationType,
304  rti1516_2025::FederateHandle const& producingFederate,
305  const rti1516_2025::RegionHandleSet* optionalSentRegions) override;
306 
310  virtual void receiveInteraction(
311  rti1516_2025::InteractionClassHandle const& interactionClass,
312  rti1516_2025::ParameterHandleValueMap const& parameterValues,
313  rti1516_2025::VariableLengthData const& userSuppliedTag,
314  rti1516_2025::TransportationTypeHandle const& transportationType,
315  rti1516_2025::FederateHandle const& producingFederate,
316  rti1516_2025::RegionHandleSet const* optionalSentRegions,
317  rti1516_2025::LogicalTime const& time,
318  rti1516_2025::OrderType sentOrderType,
319  rti1516_2025::OrderType receivedOrderType,
320  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
321 
325  virtual void receiveDirectedInteraction(
326  rti1516_2025::InteractionClassHandle const& interactionClass,
327  rti1516_2025::ObjectInstanceHandle const& objectInstance,
328  rti1516_2025::ParameterHandleValueMap const& parameterValues,
329  rti1516_2025::VariableLengthData const& userSuppliedTag,
330  rti1516_2025::TransportationTypeHandle const& transportationType,
331  rti1516_2025::FederateHandle const& producingFederate) override;
332 
336  virtual void receiveDirectedInteraction(
337  rti1516_2025::InteractionClassHandle const& interactionClass,
338  rti1516_2025::ObjectInstanceHandle const& objectInstance,
339  rti1516_2025::ParameterHandleValueMap const& parameterValues,
340  rti1516_2025::VariableLengthData const& userSuppliedTag,
341  rti1516_2025::TransportationTypeHandle const& transportationType,
342  rti1516_2025::FederateHandle const& producingFederate,
343  rti1516_2025::LogicalTime const& time,
344  rti1516_2025::OrderType sentOrderType,
345  rti1516_2025::OrderType receivedOrderType,
346  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
347 
351  virtual void removeObjectInstance(
352  rti1516_2025::ObjectInstanceHandle const& objectInstance,
353  rti1516_2025::VariableLengthData const& userSuppliedTag,
354  rti1516_2025::FederateHandle const& producingFederate) override;
355 
359  virtual void removeObjectInstance(
360  rti1516_2025::ObjectInstanceHandle const& objectInstance,
361  rti1516_2025::VariableLengthData const& userSuppliedTag,
362  rti1516_2025::FederateHandle const& producingFederate,
363  rti1516_2025::LogicalTime const& time,
364  rti1516_2025::OrderType sentOrderType,
365  rti1516_2025::OrderType receivedOrderType,
366  rti1516_2025::MessageRetractionHandle const* optionalRetraction) override;
367 
371  virtual void attributesInScope(
372  rti1516_2025::ObjectInstanceHandle const& objectInstance,
373  rti1516_2025::AttributeHandleSet const& attributes) override;
374 
378  virtual void attributesOutOfScope(
379  rti1516_2025::ObjectInstanceHandle const& objectInstance,
380  rti1516_2025::AttributeHandleSet const& attributes) override;
381 
385  virtual void provideAttributeValueUpdate(
386  rti1516_2025::ObjectInstanceHandle const& objectInstance,
387  rti1516_2025::AttributeHandleSet const& attributes,
388  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
389 
393  virtual void turnUpdatesOnForObjectInstance(
394  rti1516_2025::ObjectInstanceHandle const& objectInstance,
395  rti1516_2025::AttributeHandleSet const& attributes) override;
396 
400  virtual void turnUpdatesOnForObjectInstance(
401  rti1516_2025::ObjectInstanceHandle const& objectInstance,
402  rti1516_2025::AttributeHandleSet const& attributes,
403  std::wstring const& updateRateDesignator) override;
404 
408  virtual void turnUpdatesOffForObjectInstance(
409  rti1516_2025::ObjectInstanceHandle const& objectInstance,
410  rti1516_2025::AttributeHandleSet const& attributes) override;
411 
415  virtual void confirmAttributeTransportationTypeChange(
416  rti1516_2025::ObjectInstanceHandle const& objectInstance,
417  rti1516_2025::AttributeHandleSet const& attributes,
418  rti1516_2025::TransportationTypeHandle const& transportationType) override;
419 
423  virtual void reportAttributeTransportationType(
424  rti1516_2025::ObjectInstanceHandle const& objectInstance,
425  rti1516_2025::AttributeHandle const& attribute,
426  rti1516_2025::TransportationTypeHandle const& transportationType) override;
427 
431  virtual void confirmInteractionTransportationTypeChange(
432  rti1516_2025::InteractionClassHandle const& interactionClass,
433  rti1516_2025::TransportationTypeHandle const& transportationType) override;
434 
438  virtual void reportInteractionTransportationType(
439  rti1516_2025::FederateHandle const& federate,
440  rti1516_2025::InteractionClassHandle const& interactionClass,
441  rti1516_2025::TransportationTypeHandle const& transportationType) override;
442 
443 
445  // Ownership Management Services //
447 
452  rti1516_2025::ObjectInstanceHandle const& objectInstance,
453  rti1516_2025::AttributeHandleSet const& offeredAttributes,
454  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
455 
459  virtual void requestDivestitureConfirmation(
460  rti1516_2025::ObjectInstanceHandle const& objectInstance,
461  rti1516_2025::AttributeHandleSet const& releasedAttributes,
462  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
463 
468  rti1516_2025::ObjectInstanceHandle const& objectInstance,
469  rti1516_2025::AttributeHandleSet const& securedAttributes,
470  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
471 
475  virtual void attributeOwnershipUnavailable(
476  rti1516_2025::ObjectInstanceHandle const& objectInstance,
477  rti1516_2025::AttributeHandleSet const& attributes,
478  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
479 
484  rti1516_2025::ObjectInstanceHandle const& objectInstance,
485  rti1516_2025::AttributeHandleSet const& candidateAttributes,
486  rti1516_2025::VariableLengthData const& userSuppliedTag) override;
487 
492  rti1516_2025::ObjectInstanceHandle const& objectInstance,
493  rti1516_2025::AttributeHandleSet const& attributes) override;
494 
498  virtual void informAttributeOwnership(
499  rti1516_2025::ObjectInstanceHandle const& objectInstance,
500  rti1516_2025::AttributeHandleSet const& attributes,
501  rti1516_2025::FederateHandle const& owner) override;
502 
506  virtual void attributeIsNotOwned(
507  rti1516_2025::ObjectInstanceHandle const& objectInstance,
508  rti1516_2025::AttributeHandleSet const& attributes) override;
509 
513  virtual void attributeIsOwnedByRTI(
514  rti1516_2025::ObjectInstanceHandle const& objectInstance,
515  rti1516_2025::AttributeHandleSet const& attributes) override;
516 
518  // Time Management Services //
520 
524  virtual void timeRegulationEnabled(
525  rti1516_2025::LogicalTime const& time) override;
526 
530  virtual void timeConstrainedEnabled(
531  rti1516_2025::LogicalTime const& time) override;
532 
536  virtual void flushQueueGrant(
537  rti1516_2025::LogicalTime const& time, rti1516_2025::LogicalTime const& optimisticTime) override;
538 
542  virtual void timeAdvanceGrant(
543  rti1516_2025::LogicalTime const& time) override;
544 
548  virtual void requestRetraction(
549  rti1516_2025::MessageRetractionHandle const& retraction) override;
550 
551  private:
552  static const DtString theUnknownName;
553 };
554 #endif // DtIFSPEC1516_2025
Definition: LogicalTime.h:30
std::set< AttributeHandle > AttributeHandleSet
Definition: Typedefs.h:29
virtual void requestAttributeOwnershipRelease(ObjectHandle theObject, const AttributeHandleSet &candidateAttributes, const char *theTag)=0
7.10
std::vector< FederationExecutionInformation > FederationExecutionInformationVector
Definition: Typedefs.h:112
virtual void attributesOutOfScope(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.14
std::vector< FederateRestoreStatus > FederateRestoreStatusVector
Definition: Typedefs.h:95
OrderType
Definition: Enums.h:28
virtual void informAttributeOwnership(ObjectHandle theObject, AttributeHandle theAttribute, FederateHandle theOwner)=0
7.16
virtual void initiateFederateRestore(const char *label, FederateHandle handle)=0
4.19
virtual void confirmAttributeOwnershipAcquisitionCancellation(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
7.14
virtual void startRegistrationForObjectClass(ObjectClassHandle theClass)=0
! Declaration Management Services //!
DtFedAmbAPIType
Definition: fedAmbAPITypes.h:12
virtual void requestRetraction(EventRetractionHandle theHandle)=0
8.22
Definition: netStatsMonitor.h:33
SynchronizationPointFailureReason
Definition: Enums.h:92
virtual void synchronizationPointRegistrationFailed(const char *label)=0
supplied C4)
virtual void federationNotRestored()=0
virtual void attributesInScope(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.13
virtual void attributeOwnershipUnavailable(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
7.9
SaveFailureReason
Definition: Enums.h:63
virtual void receiveInteraction(InteractionClassHandle theInteraction, const ParameterHandleValuePairSet &theParameters, const FedTime &theTime, const char *theTag, EventRetractionHandle theHandle)=0
6.7
virtual void removeObjectInstance(ObjectHandle theObject, const FedTime &theTime, const char *theTag, EventRetractionHandle theHandle)=0
6.9
virtual void synchronizationPointRegistrationSucceeded(const char *label)=0
RTI Parameter Passing Memory Conventions.
std::vector< FederationExecutionMemberInformation > FederationExecutionMemberInformationVector
Definition: Typedefs.h:129
Instances of DtFederateMgr process federation-level messages (such as create, destroy, join, resign, and sync points) and manages the objects responsible for handling general communication, objects, interactions, the FOM, MOM, and data distribution mmg.
Definition: fedMgr.h:93
virtual void initiateFederateSave(const char *label)=0
4.12
virtual void timeAdvanceGrant(const FedTime &theTime)=0
8.13
virtual void announceSynchronizationPoint(const char *label, const char *tag)=0
4.8
virtual void requestFederationRestoreFailed(const char *label, const char *reason)=0
supplied C4
virtual void federationNotSaved()=0
virtual void federationSynchronized(const char *label)=0
4.10
virtual void discoverObjectInstance(ObjectHandle theObject, ObjectClassHandle theObjectClass, const char *theObjectName)=0
! Object Management Services //!
virtual void requestFederationRestoreSucceeded(const char *label)=0
4.17
virtual void attributeOwnershipAcquisitionNotification(ObjectHandle theObject, const AttributeHandleSet &securedAttributes)=0
7.6
virtual void reflectAttributeValues(ObjectHandle theObject, const AttributeHandleValuePairSet &theAttributes, const FedTime &theTime, const char *theTag, EventRetractionHandle theHandle)=0
6.5
virtual void turnInteractionsOff(InteractionClassHandle theHandle)=0
5.13
std::map< AttributeHandle, VariableLengthData > AttributeHandleValueMap
Definition: Typedefs.h:39
virtual void federationRestored()=0
4.21
virtual void provideAttributeValueUpdate(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.16
virtual void turnUpdatesOffForObjectInstance(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.18
virtual void requestAttributeOwnershipAssumption(ObjectHandle theObject, const AttributeHandleSet &offeredAttributes, const char *theTag)=0
! Ownership Management Services //!
virtual void turnUpdatesOnForObjectInstance(ObjectHandle theObject, const AttributeHandleSet &theAttributes)=0
6.17
std::vector< FederateHandleSaveStatusPair > FederateHandleSaveStatusPairVector
Definition: Typedefs.h:60
virtual void stopRegistrationForObjectClass(ObjectClassHandle theClass)=0
5.11
virtual void attributeIsNotOwned(ObjectHandle theObject, AttributeHandle theAttribute)=0
supplied C1
virtual void federationRestoreBegun()=0
4.18
virtual void federationSaved()=0
4.15
Definition: VariableLengthData.h:28
virtual void timeConstrainedEnabled(const FedTime &theFederateTime)=0
8.6
RestoreFailureReason
Definition: Enums.h:44
virtual void timeRegulationEnabled(const FedTime &theFederateTime)=0
! Time Management Services //!
std::map< ParameterHandle, VariableLengthData > ParameterHandleValueMap
Definition: Typedefs.h:44
virtual void turnInteractionsOn(InteractionClassHandle theHandle)=0
5.12
This file contains the declaration of the base federation manager.
std::set< FederateHandle > FederateHandleSet
Definition: Typedefs.h:32
std::set< RegionHandle > RegionHandleSet
Definition: Typedefs.h:34

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)