19 #include <vl/globalObjectDesignator.h>
20 #include <vl/vrlinkStateStateRepository.h>
21 #include <tbb/spin_rw_mutex.h>
22 #include <tbb/spin_mutex.h>
23 #include <tbb/mutex.h>
25 #include <unordered_map>
28 #include <boost/function.hpp>
31 class DtReflectedDIGuyObject;
44 class DtGeoReferenceVariant;
47 namespace makVrfVrlinkExtToolkit
49 class DtReflectedExtendedAttributesObject;
55 class DtRemoteObjectManager;
56 class DtVrfEntityIdentifierFactory;
57 class DtVrlinkNetworkInterface;
58 class DtVrlinkEventTranslatorManager;
59 class DtVrlinkEventTranslator;
60 class DtStateDataManager;
62 class DtHlaExerciseClock;
92 virtual void beginFrame(
double)
override;
93 virtual bool preAdvanceFrame()
override;
94 virtual void advanceFrame(
double* networkTime =
nullptr)
override;
95 virtual bool waitingToAddObjects()
const override;
98 virtual void setBlockOnUnfinishedRemoteDiscovery(
bool);
101 return myBlockOnUnfinishedRemoteDiscovery;
107 virtual const char*
type()
const override {
return Type(); };
108 static const char*
Type() {
return "vrlink-network-interface"; };
111 virtual bool printDataToStream(
const DtUUID&, DtOutputStream&
stream)
const override;
114 virtual void setInterest(
const DtVector& geocentricCenter,
double radius)
override;
132 virtual bool supportsOwnershipTransfer()
const override;
135 virtual const DtStateData* stateDataFor(DtHlaObject*)
const;
139 virtual std::vector<DtGlobalObjectDesignator> getObjectsPublishedBy(
const DtStateData*)
const;
144 virtual void lostControlOf(DtReflectedDIGuyObject*);
149 virtual void gainedConntrolOfUnknownHlaObject(DtHlaObject*);
154 DtHlaObjectWithStateRep* obj,
155 DtHlaObjectWithStateRep* extendedAttributes =
nullptr
163 virtual DtUUID uuidForGeoReferenceVariant(
const DtGeoReferenceVariant& georeference)
const;
164 virtual DtStateData* stateDataForGeoReferenceVariant(
const DtGeoReferenceVariant&)
const;
165 virtual void mapStateDataByGeoReferenceVariant(
DtStateData* std,
const DtGeoReferenceVariant& grv);
166 virtual bool unmapStateDataByGeoReferenceVariant(
const DtGeoReferenceVariant& grv);
167 virtual bool unmapGeoReferenceVariantByStateData(
const DtStateData* sd);
169 virtual void setExerciseStartTime(
double)
override;
170 virtual void setSimTime(
double)
override;
171 virtual void setTimeMultiplier(
double)
override;
174 virtual void resetSimulation()
override;
178 virtual void setControlsDrainInput(
bool);
179 bool controlsDrainInput()
const;
184 return myPreferredDateAndTimeRepository;
190 return std::string(
"DIS");
192 return std::string(
"HLA4");
193 #elif DDtHLA_1516_EVOLVED == 1
194 return std::string(
"HLA1516e");
195 #elif DDtHLA_1516 == 1
196 return std::string(
"HLA1516");
197 #else //This is HLA13
198 return std::string(
"HLA13");
203 virtual bool runningInTimeManagedMode()
const;
210 static void startTimeManagement(
void* usr);
211 static void stopTimeManagement(
void* usr);
215 virtual void processStartTimeManagement();
216 virtual void processStopTimeManagement();
219 virtual void setReflectedListRequestUpdates(
bool yesOrNo);
223 virtual void setDisableRemoteDiscovery(
bool);
226 return myDisableRemoteDiscovery;
230 virtual void setDefaultObjectTimeout(
int);
233 return myDefaultObjectTimeout;
235 virtual void setDisableTimeoutProcessing(
bool);
238 return myDisableTimeoutProcessing;
241 struct ComponentRuleUserData
259 typedef boost::function<bool (const DtStateComponent*, const DtStateData*, std::shared_ptr<ComponentRuleUserData>)>
CreationRule;
261 const DtString& testBeforeInterface =
"");
264 virtual bool createInterfaceIfComponentIs(
const DtStateComponent* c,
const DtStateData* d, std::shared_ptr<ComponentRuleUserData>);
269 virtual void reserveEntityId(
const DtEntityIdentifier&)
override;
271 virtual void setRunFullyThreaded(
bool)
override;
272 virtual bool runFullyThreaded()
const;
274 virtual void setEnabled(
bool)
override;
279 return myCoordinateSystem;
284 return myExerciseConnection;
287 virtual void removeAndDeleteAll(
const std::set<DtUUID>& except = std::set<DtUUID>())
override;
288 virtual bool wantsToSelfReflect(
unsigned int)
const;
291 virtual bool selfReflecting()
const override;
299 return myParameterDatabase;
302 virtual unsigned int maxNameLengthForType(
const DtEntityType&)
const override;
305 virtual void setVrfSessionId(
int)
override;
308 return myVrfSessionId;
312 virtual void setVrfMessageVersionSupported(
int)
override;
315 return myVrfMessageVersionSupported;
320 virtual void setPublishZeroVelocityWhenPaused(
bool);
323 return myPublishZeroVelocityWhenPaused;
334 return mySimMgmtPduProcessLevel;
337 virtual void setSimMgmtPduProcessLevel(
unsigned int level);
342 virtual void setDeadReckoningAlgorithmToStaticOnPause(
bool);
345 return mySetDeadReckoningAlgorithmToStaticOnPause;
349 virtual void overrideDeadReckoningAlgorithm(
int drAlg);
353 virtual bool isDeadReckonAlgorithmOverridden(
int& drAlg)
const;
357 virtual void removeDeadReckoningAlgorithmOverride();
359 virtual DtEntityIdentifier nextEntityIdentifier(
const DtStateData* = 0,
const DtEntityIdentifier& = DtEntityIdentifier());
361 virtual DtEntityIdentifier objectIdentifierFor(
SimStateID)
const;
362 virtual DtEntityIdentifier objectIdentifierFor(
const DtUUID&)
const;
365 virtual DtEntityIdentifier globalObjectIdentifierFor(
const DtUUID&)
const;
366 virtual DtEntityIdentifier globalObjectIdentifierFor(
SimStateID)
const;
372 virtual DtUUID uuidForObjectIdentifier(
const DtEntityIdentifier&)
const;
378 virtual void setSiteAppId(
int,
int)
override;
382 virtual DtString nextEventId(
const DtString& entId = DtString::nullString())
override;
384 virtual int setAppIdRangeMax(
int);
389 virtual void startScenarioLoad(
bool)
override;
392 virtual void endScenarioLoad(
bool)
override;
400 virtual double simTime()
const;
402 virtual void setMaxDrainInputTime(
double maxTime);
403 virtual double maxDrainInputTime()
const;
405 virtual void setFrameRateMode(
const DtString&
mode,
double deltaTime,
bool manageTime =
false)
override;
406 virtual void rewindScenario()
override;
409 virtual void setMinDrainInputTime(
double minTime);
410 virtual double minDrainInputTime()
const;
412 virtual void setFrameDeltaTime(
double);
413 virtual double frameDeltaTime()
const;
415 virtual void beginBulkCreate()
override;
416 virtual void endBulkCreate()
override;
418 virtual void setMaxDrainInputReads(
int maxReads);
419 virtual int maxDrainInputReads()
const;
426 virtual void removeEventTranslator(
int eventType);
431 virtual void run()
override;
434 virtual void pause()
override;
442 virtual bool hasNetworkRepresentation(
const DtUUID&)
const override;
446 virtual void setBulkAddTimeout(
double);
449 return myBulkAddTimeout;
456 return myEventManager;
461 return myCommunicationManager;
466 return myRemoteObjectManager;
470 virtual DtU32 scenarioCapabilities()
const override;
471 virtual void setScenarioCapabilities(DtU32)
override;
476 virtual void setNumCallbackThreads(
unsigned)
override;
479 virtual void setNumRemoteCallbackThreads(
unsigned);
481 virtual void addDefaultNetworkInterface(
const DtEntityType&,
const DtString& local,
const DtString& remote);
482 virtual void removeDefaultNetworkInterface(
const DtEntityType&);
489 virtual void setUseNetworkThread(
bool);
490 virtual bool usingNetworkThread()
const;
493 virtual void setDisableParallelPublisherTick(
bool);
494 virtual bool disableParallelPublisherTick()
const;
498 virtual void setTickPublishersDuringEntityTick(
bool);
499 virtual bool tickPublishersDuringEntityTick()
const;
503 virtual void reserve(
unsigned numToReserve)
override;
506 virtual bool willRediscoverObjects()
const;
514 virtual bool stateDataAdded(
DtStateData*)
override;
519 return myNetworkFrameTime;
522 virtual void setSendMessagesInNetworkProcess(
bool);
525 return mySendMessagesInNetworkProcess;
528 #if DtHLA_1516_EVOLVED
529 virtual void setAutoReserve(
int);
531 int autoReserve()
const;
540 virtual DtString nextGlobalObjectId(
const DtString& defaultId = DtString::nullString());
545 virtual void setLimitSizeToMtu(
bool limitToMtu);
546 virtual bool limitSizeToMtu()
const;
550 virtual unsigned maxInteractionSize()
const;
553 virtual void lockEsr(
const DtUUID&,
bool forWrite);
554 virtual void unlockEsr(
const DtUUID&,
bool fromWrite);
559 virtual void sendQueuedMessages();
568 virtual void reserveGlobalObjectIds(
unsigned numToReserve);
594 virtual void slot_prepareForHandoff(
DtStateData*,
bool becomingLocal);
597 virtual void stateDataAboutToBeRemoved(
const DtStateData*)
override;
599 virtual void printReflectedObjectCounts()
const override;
603 virtual void requestUpdatesForRemoteNonVrfObjects()
const override;
606 void createExerciseClock(
int clockMode = 0);
608 virtual void drainInput();
612 virtual void cleanupNetworkThread();
614 virtual void runNetwork();
615 virtual void resolvePendingIds();
618 virtual void createAndInitRemoteObjectManager();
621 virtual bool rediscoverObjects()
override;
626 virtual void stateDataManagerDeleted();
628 #if DtHLA_1516_EVOLVED
629 virtual void reservedNamesSuceeded(
const std::set<std::wstring>& theNames);
633 virtual void reservedNamesFailed(
const std::set<std::wstring>& theNames);
635 static void nameSetReservationSucceededCb(
const std::set<std::wstring>& nameSet,
637 static void nameSetReservationFailedCb(
const std::set<std::wstring>& nameSet,
642 virtual void setExecutionState(DtVRLExecutionStatus status);
653 typedef std::map<SimStateID, DtSimObjectNetInterface*>
Publishing;
714 #if DtHLA_1516_EVOLVED
715 std::set<DtGlobalObjectDesignator> myReservedGlobalIds;
716 std::set<DtGlobalObjectDesignator> myPendingReservedGlobalIds;
718 tbb::spin_mutex myGlobalIdReserveDataMutex;
720 tbb::spin_mutex myGlobalIdReserveRtiCallMutex;
725 int myMaxDrainInputReads;
755 double myBulkAddTimeout = 1.0 / 2.0;
762 bool runNetworkInThread =
false;
763 bool publishWhileTicking =
false;
764 bool timeManagementDataSet =
false;
765 int networkCallbackThreads = -1;
777 bool myDisableTimeoutProcessing =
false;
801 using LostControlOf = std::map<DtReflectedObject*, std::vector<DtGlobalObjectDesignator>>;
814 bool myEnteredTimeManagedMode =
false;
819 typedef std::unordered_map<DtUUID, tbb::spin_rw_mutex*>
HostEsrMap;
unsigned int StateComponentType
Definition: stateComponent.h:56
GlobalIdForNetworkInterface myGlobalIdForNetworkInterface
Definition: vrlinkNetworkInterface.h:664
DtReflectedObjectLists myReflectedObjectLists
Definition: vrlinkNetworkInterface.h:783
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:64
DtExerciseConn * myExerciseConnection
Definition: vrlinkNetworkInterface.h:646
DtFilename myFastForwardSettingsFile
Fast forward settings file.
Definition: vrlinkNetworkInterface.h:729
DtVrfEntityIdentifierFactory * myEntityIdentifierFactory
Definition: vrlinkNetworkInterface.h:705
bool setDeadReckoningAlgorithmToStaticOnPause() const
Definition: vrlinkNetworkInterface.h:343
tbb::spin_rw_mutex myHostEsrMapMutex
Micromanage hostEsr locking this way for embarked entities instead of a global lock.
Definition: vrlinkNetworkInterface.h:818
DtHlaExerciseClock * myExerciseClock
Definition: vrlinkNetworkInterface.h:710
unsigned long long SimStateID
Definition: stateDataTypes.h:16
static const char * Type()
Definition: vrlinkNetworkInterface.h:108
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:41
virtual int vrfSessionId() const
Definition: vrlinkNetworkInterface.h:306
unsigned int simMgmtPduProcessLevel() const
Set/Get the type of receiver ids to process when processing a sim mgmt PDU 1={*,*,*}&{*,*,0} <- wildcarded recipients 2={a,b,0} <- specific ids only 3= both 1 and 2 4= Processes any sim mgmt PDUs that match (with wildcards) the sim's simulation address.
Definition: vrlinkNetworkInterface.h:332
std::unique_ptr< std::thread > myNetworkThread
Member variables used to interact with the remote objects reading.
Definition: vrlinkNetworkInterface.h:744
This class will wrap a VR-Link DtEntityPublisher to allow for easier creation of a publisher that is ...
Definition: vrfEntityPublisher.h:60
std::map< DtGlobalObjectDesignator, DtSimObjectNetInterface * > GlobalIdForNetworkInterface
Definition: vrlinkNetworkInterface.h:663
const Coordinate_System * myCoordinateSystem
Definition: vrlinkNetworkInterface.h:691
bool myScenarioLoaded
Definition: vrlinkNetworkInterface.h:795
DtString local
Definition: vrlinkNetworkInterface.h:78
Definition: scenario.h:52
DtDefaultSimulationModelSetValidatorManager mySimulationModelSetValidator
Definition: vrlinkNetworkInterface.h:731
Default implementation that will add protocol and state data validators (contained in this header fil...
Definition: defaultSimulationModelSetValidatorManager.h:19
DtString remote
Definition: vrlinkNetworkInterface.h:79
virtual int vrfMessageVersionSupported() const
Definition: vrlinkNetworkInterface.h:313
std::map< DtGlobalObjectDesignator, bool > myNeedsToLoseControlOf
Definition: vrlinkNetworkInterface.h:803
int myVrfMessageVersionSupported
Definition: vrlinkNetworkInterface.h:695
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
std::vector< makVrfEvents::DtEvent * > myQueuedMessagesToSend
Definition: vrlinkNetworkInterface.h:790
bool mySetDeadReckoningAlgorithmToStaticOnPause
Definition: vrlinkNetworkInterface.h:700
The DtEventManager handles the sending and receipt of system events (fire, detonate, command, etc). It provides a thread-safe way for the sim engine to send and receive such events, between both components within this sim engine and other remote applications.
Definition: eventManager.h:33
std::condition_variable Condition
Definition: vrlinkNetworkInterface.h:739
std::map< DtReflectedObject *, std::vector< DtGlobalObjectDesignator >> LostControlOf
Definition: vrlinkNetworkInterface.h:801
std::map< DtStateComponent *, DtSimObjectNetInterface * > StateComponentsPublishing
Definition: vrlinkNetworkInterface.h:656
virtual const char * type() const override
Type to uniquely identify this manager.
Definition: vrlinkNetworkInterface.h:107
ComponentCreationRules myComponentCreationRules
Definition: vrlinkNetworkInterface.h:689
DtU32 myScenarioCapabilities
Definition: vrlinkNetworkInterface.h:822
static DtVrlinkNetworkInterfaceCreatorFcn theCreator
Definition: vrlinkNetworkInterface.h:732
bool myBlockOnUnfinishedRemoteDiscovery
Definition: vrlinkNetworkInterface.h:701
int myVrfSessionId
Definition: vrlinkNetworkInterface.h:694
CreationRule creationRule
Definition: vrlinkNetworkInterface.h:683
makVrfEvents::DtEventManager * myEventManager
Definition: vrlinkNetworkInterface.h:706
Definition: fastForwardSettings.h:12
double myFrameDeltaTime
Definition: vrlinkNetworkInterface.h:712
std::set< DtReflectedDIGuyObject * > myLostControlOfDIGuy
Definition: vrlinkNetworkInterface.h:805
Simple asynchronous callback queue.
Definition: vrfCallbackQueue.h:29
This class will, in DIS or HLA, generate the unique id necessary to pass into the object publisher to...
Definition: vrfObjectIdGenerator.h:22
double myNextFrameSimTime
Definition: vrlinkNetworkInterface.h:770
tbb::spin_rw_mutex myStateDataMutex
Definition: vrlinkNetworkInterface.h:661
Definition: vrfEntityIdentifierFactory.h:21
unsigned long long UInt64
Definition: stateDataTypes.h:17
bool myIsDeadReckonAlgorithmOverridden
Definition: vrlinkNetworkInterface.h:698
std::atomic< bool > myShutdownNetworkThreadFlag
Definition: vrlinkNetworkInterface.h:747
DtExerciseConn * exerciseConnection()
Definition: vrlinkNetworkInterface.h:282
int myAppIdRangeMax
Definition: vrlinkNetworkInterface.h:704
class DtRemoteObjectManager:
Definition: remoteObjectManager.h:28
tbb::mutex myNetworkThreadMutex
Definition: vrlinkNetworkInterface.h:749
DtCommunicationManager * communicationManager()
Definition: vrlinkNetworkInterface.h:459
Given a component type, sets the publisher creator for that component. Set DtString::nullString() to ...
Definition: vrlinkNetworkInterface.h:245
std::atomic< bool > myProcessingNetwork
Definition: vrlinkNetworkInterface.h:756
class DtVrlinkNetworkInterface:
Definition: vrlinkNetworkInterface.h:72
bool myReflectedListRequestUpdatesOn
Definition: vrlinkNetworkInterface.h:759
HostEsrMap myHostEsrMap
Definition: vrlinkNetworkInterface.h:820
virtual bool typeIsPublishable(const DtEntityType &) const override
Returns true if the entity type is publishable by this connection.
Definition: vrlinkNetworkInterface.h:440
int myDeadReckonOverrideAlgorithm
Definition: vrlinkNetworkInterface.h:699
bool publishZeroVelocityWhenPaused() const
Definition: vrlinkNetworkInterface.h:321
StateDataByEntityId myStateDataByEntityId
Definition: vrlinkNetworkInterface.h:675
ComponentsPublishing myComponentsPublishing
Definition: vrlinkNetworkInterface.h:658
virtual double bulkAddTimeout() const
Definition: vrlinkNetworkInterface.h:447
double myMaxDrainInputTime
Definition: vrlinkNetworkInterface.h:707
unsigned int myBulkCreateTickCounter
Definition: vrlinkNetworkInterface.h:794
std::map< DtString, DtStateData * > StateDataByEntityId
Definition: vrlinkNetworkInterface.h:674
DtNetworkManagerInterface is the base class which all network interfaces must be derived from...
Definition: networkManagerInterface.h:43
Definition: coordSystem.h:54
DtRemoteObjectManager * myRemoteObjectManager
Definition: vrlinkNetworkInterface.h:666
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
std::set< makVrfVrlinkExtToolkit::DtReflectedExtendedAttributesObject * > myLostControlOfExtendedAttributes
Definition: vrlinkNetworkInterface.h:806
int myDefaultObjectTimeout
Definition: vrlinkNetworkInterface.h:776
virtual void setSelfReflecting(bool) override
No-op. Once the connection is created the self reflecting cannot be changed.
Definition: vrlinkNetworkInterface.h:294
Definition: vrlinkNetworkInterface.h:760
ComponentTypeUserData(DtStateComponent::StateComponentType t)
Definition: vrlinkNetworkInterface.h:252
bool myEnabled
Definition: vrlinkNetworkInterface.h:648
ConditionMutex myStartNetworkConditionMutex
Definition: vrlinkNetworkInterface.h:746
DtVrlinkNetworkInterface *(* DtVrlinkNetworkInterfaceCreatorFcn)(DtExerciseConn *, bool)
Definition: vrlinkNetworkInterface.h:65
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:54
bool myRunFullyThreaded
Definition: vrlinkNetworkInterface.h:649
std::map< DtString, DtStateData * > StateDataByGlobalId
Definition: vrlinkNetworkInterface.h:669
Class Description: DtSimObjectNetInterface.
Definition: simObjectNetInterface.h:50
virtual bool needsUnpublishedDatabase() const override
Return true if this connection uses the simulation database to publish on (as a legion connection doe...
Definition: vrlinkNetworkInterface.h:586
double myCurrentFrameSimTime
Definition: vrlinkNetworkInterface.h:771
DtVrfObjectIdGenerator * myVrfObjectIdGenerator
Definition: vrlinkNetworkInterface.h:798
DtPublisherContainer< DtSimObjectNetInterface > PublisherContainer
Definition: vrlinkNetworkInterface.h:84
std::map< SimStateID, DtSimObjectNetInterface * > Publishing
Definition: vrlinkNetworkInterface.h:653
bool myBulkCreateInProgress
Defaults to 4.
Definition: vrlinkNetworkInterface.h:793
bool myPublishZeroVelocityWhenPaused
Definition: vrlinkNetworkInterface.h:697
DtOrderedEntityTypeList< DefaultNetworkInterfaceEntry * > DefaultNetworkInterfaceEntries
Definition: vrlinkNetworkInterface.h:780
Definition: vrlinkEventTranslatorManager.h:28
#define DT_DLL_vrlinkNetworkInterface
This file is used to determine how to build.
Definition: vrlinkNetworkInterfaceDefines.h:24
unsigned int mySimMgmtPduProcessLevel
Definition: vrlinkNetworkInterface.h:735
ComponentTypeUserData(const ComponentTypeUserData &orig)
Definition: vrlinkNetworkInterface.h:253
bool timeoutProcessingDisabled() const
Definition: vrlinkNetworkInterface.h:236
bool sendMessagesInNetworkProcess() const
Definition: vrlinkNetworkInterface.h:523
double myMinDrainInputTime
Definition: vrlinkNetworkInterface.h:711
DtVrfCallbackQueue * myNetworkCallbackQueue
Definition: vrlinkNetworkInterface.h:748
std::vector< ComponentCreationRule > ComponentCreationRules
Definition: vrlinkNetworkInterface.h:688
int myNumNetworkWorkerThreads
Definition: vrlinkNetworkInterface.h:791
bool myLimitSizeToMtu
Definition: vrlinkNetworkInterface.h:797
tbb::spin_mutex myLostControlOfMutex
Definition: vrlinkNetworkInterface.h:800
double myNetworkFrameTime
Definition: vrlinkNetworkInterface.h:786
tbb::queuing_rw_mutex myPublishingMutex
Definition: vrlinkNetworkInterface.h:660
Condition myStartNetworkCondition
Definition: vrlinkNetworkInterface.h:745
DtCommunicationManager * myCommunicationManager
Definition: vrlinkNetworkInterface.h:737
bool blockOnUnfinishedRemoteDiscovery() const
Definition: vrlinkNetworkInterface.h:99
Definition: vrlinkNetworkInterface.h:250
tbb::spin_mutex myQueuedMessagesToSendMutex
Definition: vrlinkNetworkInterface.h:789
std::mutex ConditionMutex
Definition: vrlinkNetworkInterface.h:740
DtVrfParameterDb * parameterDatabase() const
Definition: vrlinkNetworkInterface.h:297
DtFastForwardSettings myFastForwardSettings
Definition: vrlinkNetworkInterface.h:730
LostControlOf myLostControlOf
Definition: vrlinkNetworkInterface.h:802
Definition: asyncJobServer.h:39
DtRemoteObjectManager * remoteObjectManager()
Definition: vrlinkNetworkInterface.h:464
Publishing myPublishing
Definition: vrlinkNetworkInterface.h:654
TimeManagementData myTimeManagementData
Definition: vrlinkNetworkInterface.h:768
DtTimeAndDateStateRepository * preferredDateAndTimeRepository() const
Definition: vrlinkNetworkInterface.h:182
Definition: vrlinkNetworkInterface.h:681
Definition: stateComponent.h:52
voidpf stream
Definition: ioapi.h:39
bool disableRemoteDiscovery() const
Definition: vrlinkNetworkInterface.h:224
PublisherContainer myTickableInterfaces
Definition: vrlinkNetworkInterface.h:651
bool myDisableRemoteDiscovery
Definition: vrlinkNetworkInterface.h:751
DtRemoteObjectManager *(* DtRemoteObjectManagerCreatorFcn)(DtVrlinkNetworkInterface *)
Definition: vrlinkNetworkInterface.h:66
virtual double networkFrameTime() const
Time spent in the network frame.
Definition: vrlinkNetworkInterface.h:517
bool mySendMessagesInNetworkProcess
Definition: vrlinkNetworkInterface.h:788
std::set< DtStateData * > myPendingEntityIds
Definition: vrlinkNetworkInterface.h:676
std::unique_lock< ConditionMutex > ConditionLock
Definition: vrlinkNetworkInterface.h:741
DtVrlinkEventTranslatorManager * myVrlinkEventTranslatorManager
Definition: vrlinkNetworkInterface.h:733
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const char int mode
Definition: ioapi.h:38
tbb::spin_mutex myEventIdMutex
Definition: vrlinkNetworkInterface.h:703
bool myTickPublishersInNetworkThread
Definition: vrlinkNetworkInterface.h:753
std::unordered_map< DtUUID, tbb::spin_rw_mutex * > HostEsrMap
Definition: vrlinkNetworkInterface.h:819
int defaultObjectTimeout() const
Definition: vrlinkNetworkInterface.h:231
Definition: hlaExerciseClock.h:41
DefaultNetworkInterfaceEntries myDefaultNetworkInterfaceEntries
Definition: vrlinkNetworkInterface.h:781
std::atomic< bool > myStartNetworkThread
Definition: vrlinkNetworkInterface.h:773
StateDataByGlobalId myStateDataByGlobalId
Definition: vrlinkNetworkInterface.h:670
DtString networkInterface
Definition: vrlinkNetworkInterface.h:684
const Coordinate_System * coordinateSystem() const
Definition: vrlinkNetworkInterface.h:277
double myLastSetSimTime
Definition: vrlinkNetworkInterface.h:772
makVrfEvents::DtEventManager * eventManager()
Definition: vrlinkNetworkInterface.h:454
DtVrfParameterDb * myParameterDatabase
Definition: vrlinkNetworkInterface.h:693
bool myControlsDrainInput
Definition: vrlinkNetworkInterface.h:752
std::map< DtGeoReferenceVariant, DtStateData * > StateDataByGeoreferenceVariant
Definition: vrlinkNetworkInterface.h:678
PublisherContainer myNeedsPublishersCreated
Definition: vrlinkNetworkInterface.h:650
std::set< DtStateData * > myPendingGlobalIds
Definition: vrlinkNetworkInterface.h:671
virtual bool hasSimulationTime() const override
Return true if this network interface also deals with simulation time.
Definition: vrlinkNetworkInterface.h:582
virtual std::string protocol() const override
Descriptive text of the network protocol.
Definition: vrlinkNetworkInterface.h:187
Definition: reflectedObjectLists.h:166
Contains the DtStateComponent class declaration.
std::set< DtStateComponent * > myCreateNetInterfaceFor
Definition: vrlinkNetworkInterface.h:734
virtual ComponentRuleUserData * clone() const
Definition: vrlinkNetworkInterface.h:247
std::map< SimStateID, StateComponentsPublishing > ComponentsPublishing
Definition: vrlinkNetworkInterface.h:657
DtStateDataManager * myStateDataManager
Definition: vrlinkNetworkInterface.h:647
Definition: vrlinkNetworkInterface.h:75
Definition: vrlinkEventTranslator.h:28
static DtRemoteObjectManagerCreatorFcn theRemoteObjectManagerCreatorFcn
Definition: vrlinkNetworkInterface.h:809
virtual bool publishingOnLegionNetwork() const override
Whether or not this interface publishes on the legion network.
Definition: vrlinkNetworkInterface.h:624
std::shared_ptr< ComponentRuleUserData > userData
Definition: vrlinkNetworkInterface.h:685
boost::function< bool(const DtStateComponent *, const DtStateData *, std::shared_ptr< ComponentRuleUserData >)> CreationRule
Definition: vrlinkNetworkInterface.h:259
std::vector< DtSimObjectNetInterface * > myInterfacesToDelete
Definition: vrlinkNetworkInterface.h:785
StateDataByGeoreferenceVariant myStateDataByGeoreferenceVariant
Definition: vrlinkNetworkInterface.h:679
Description: The Exercise Clock keeps track of current simulated time. When 'ticked', it advances simulation time based on elapsed real time since the last time it was ticked and a time-multiplier that allows the exercise clock to run faster or slower than real-time. The exercise clock also supports a pause/resume capability.
Definition: exerciseClock.h:27
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73