21 #include <tbb/spin_rw_mutex.h>
22 #include <tbb/spin_mutex.h>
23 #include <tbb/mutex.h>
24 #include <vl/publisherContainer.h>
25 #include <boost/signals2.hpp>
27 #include <vlpi/entityIdentifier.h>
30 #include <vl/rtiCompatibility.h>
39 class DtNonVrfUUIDResolver;
40 class DtVrlinkNetworkInterface;
41 class DtSimObjectNetInterfaceFactory;
72 myNetworkInterfaceDeletedConnection = myNetInterface->signal_networkInterfaceDeleted.connect(
73 boost::bind(&ParallelContainer::networkInterfaceDeleted,
this));
78 myNetworkInterfaceDeletedConnection.disconnect();
81 virtual void run()
override;
82 virtual void networkInterfaceDeleted();
91 if (!myParallelContainer)
96 return myParallelContainer;
110 virtual bool init(
const DtEntityIdentifier&
id = DtEntityIdentifier()) {
return true; }
122 virtual void onTick() = 0;
127 virtual bool isUnit()
const = 0;
128 virtual bool isEntity()
const = 0;
129 virtual bool isEnvironmental()
const = 0;
132 virtual bool wantsToCreatePublisher()
const = 0;
134 #if DtHLA_1516_EVOLVED
135 virtual bool checkForNameReservation();
143 virtual bool isLocal()
const = 0;
151 virtual int maxNameLength()
const;
154 virtual void toBeRemoved();
162 virtual RTI::ObjectClassHandle objectClassHandle()
const = 0;
172 static void setNonVrfObjectsUUIDScheme(
const DtString&);
173 static DtString nonVrfObjectsUUIDScheme();
184 static void addSimObjectNetInterfaceCreatorFcn(
const DtString & type,
197 static int maxNameLengthForInterfaceType(
const DtString& interfaceTypeString);
201 virtual void parallelTick();
202 virtual void forceUpdate();
208 virtual void sendFinalPduOnDestruction(
bool);
213 virtual void stateDataDestroyed();
215 bool runFullyThreaded()
const;
228 friend class DtPrintObjectStatusCommand;
229 friend class DtPrintOrgViewCommand;
239 bool isValid()
const {
return (mySimObject !=
nullptr); };
static DtNonVrfUUIDResolver * theNonVrfUUIDResolver
Definition: simObjectNetInterface.h:248
virtual bool init(const DtEntityIdentifier &id=DtEntityIdentifier())
Derived classes that need to perform virtual construction my override this function as desired...
Definition: simObjectNetInterface.h:110
tbb::spin_mutex myTickMutex
Definition: simObjectNetInterface.h:85
const DtStateData * vrfObject() const
Definition: simObjectNetInterface.h:217
DtStateData * nextFrameVrfObject()
Definition: simObjectNetInterface.h:222
Definition: netInterfaceParallelLock.h:16
DtSimObjectNetInterface * myNetInterface
Definition: simObjectNetInterface.h:84
tbb::mutex myDeleteGuardMutex
Definition: simObjectNetInterface.h:254
virtual ~ParallelContainer()
Definition: simObjectNetInterface.h:76
ParallelContainer(DtSimObjectNetInterface *sd)
Definition: simObjectNetInterface.h:68
class DtVrlinkNetworkInterface:
Definition: vrlinkNetworkInterface.h:60
Definition: simObjectNetInterface.h:65
DtVrfCallbackQueue::CallbackInterface::Ptr myParallelContainer
Definition: simObjectNetInterface.h:255
DtVrlinkNetworkInterface * myObjectManager
Definition: simObjectNetInterface.h:244
DtVrfCallbackQueue::CallbackInterface::Ptr parallelContainer()
Definition: simObjectNetInterface.h:89
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
static DtSimObjectNetInterfaceFactory * theFactory
Definition: simObjectNetInterface.h:247
API for writing callbacks.
Definition: vrfCallbackQueue.h:58
boost::signals2::connection mySimObjectRemovalConnection
Definition: simObjectNetInterface.h:253
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
Definition: nonVrfUUIDResolver.h:24
bool myNeedsNetworkSetup
Definition: simObjectNetInterface.h:250
Class Description: DtSimObjectNetInterface.
Definition: simObjectNetInterface.h:50
static tbb::spin_rw_mutex thePublisherTickMutex
Definition: simObjectNetInterface.h:237
#define DT_DLL_vrlinkNetworkInterface
This file is used to determine how to build.
Definition: vrlinkNetworkInterfaceDefines.h:24
static tbb::spin_rw_mutex thePublisherCreationMutex
Definition: simObjectNetInterface.h:236
boost::signals2::connection myNetworkInterfaceDeletedConnection
Definition: simObjectNetInterface.h:86
virtual bool publishObject() const
Definition: simObjectNetInterface.h:156
DtStateRepository * myNetworkState
Definition: simObjectNetInterface.h:245
class DtSimObjectNetInterfaceFactory:
Definition: simObjectNetInterfaceFactory.h:26
DtSimObjectNetInterface *(* DtSimObjectNetIfaceCreatorFcn)(DtStateData *simObject, DtVrlinkNetworkInterface *mgr, bool publishObject)
Definition: simObjectNetInterfaceFactory.h:19
DtNetInterfaceParallelLock myLock
Definition: simObjectNetInterface.h:252
boost::signals2::signal< void()> signal_networkInterfaceDeleted
Definition: simObjectNetInterface.h:205
boost::shared_ptr< CallbackInterface > Ptr
Definition: vrfCallbackQueue.h:64