VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends
makVrf::DtSimObjectNetInterface Class Referenceabstract

Class Description: DtSimObjectNetInterface.

DtSimObjectNetInterface is an abstract base class that represents the interface between a simulation object's local representation in VR-Forces and its network (VR-Link) representation

Inheritance diagram for makVrf::DtSimObjectNetInterface:
Inheritance graph
[legend]

Classes

class  ParallelContainer
 

Public Member Functions

 DtSimObjectNetInterface (DtStateData *simObject, DtVrlinkNetworkInterface *, bool publishObject=true)
 
virtual ~DtSimObjectNetInterface ()
 
virtual bool init (const DtEntityIdentifier &id=DtEntityIdentifier())
 
virtual void tick ()
 
virtual void onTick ()=0
 
virtual bool isUnit () const =0
 
virtual bool isEntity () const =0
 
virtual bool isEnvironmental () const =0
 
virtual bool wantsToCreatePublisher () const =0
 
virtual bool isLocal () const =0
 
virtual DtString type () const =0
 
virtual int maxNameLength () const
 
virtual void toBeRemoved ()
 
virtual bool publishObject () const
 
virtual RTI::ObjectClassHandle objectClassHandle () const =0
 
virtual void parallelTick ()
 
virtual void forceUpdate ()
 

Static Public Member Functions

static void setNonVrfUUIDResolver (DtNonVrfUUIDResolver *)
 
static DtNonVrfUUIDResolvernonVrfUUIDResolver ()
 
static void addSimObjectNetInterfaceCreatorFcn (const DtString &type, DtSimObjectNetIfaceCreatorFcn fcn)
 
static void setFactory (DtSimObjectNetInterfaceFactory *factory)
 
static
DtSimObjectNetInterfaceFactory
factory ()
 
static DtSimObjectNetInterfacecreateNetInterface (const DtString &type, DtStateData *simObject, DtVrlinkNetworkInterface *, bool publishObject=true)
 
static int maxNameLengthForInterfaceType (const DtString &interfaceTypeString)
 
static void setNonVrfObjectsUUIDScheme (const DtString &)
 
static DtString nonVrfObjectsUUIDScheme ()
 

Static Public Attributes

static tbb::spin_rw_mutex thePublisherCreationMutex
 
static tbb::spin_rw_mutex thePublisherTickMutex
 

Protected Member Functions

bool runFullyThreaded () const
 
const DtStateDatavrfObject () const
 
DtStateDatanextFrameVrfObject ()
 
virtual const DtStateRepositorynetworkState () const
 

Protected Attributes

DtStateDatamySimObject
 
DtVrlinkNetworkInterfacemyObjectManager
 
DtStateRepositorymyNetworkState
 
bool myNeedsNetworkSetup
 
DtNetInterfaceParallelLock myLock
 

Static Protected Attributes

static
DtSimObjectNetInterfaceFactory
theFactory
 
static DtNonVrfUUIDResolvertheNonVrfUUIDResolver
 

Private Member Functions

 DtSimObjectNetInterface ()
 
 DtSimObjectNetInterface (const DtSimObjectNetInterface &orig)
 
const DtSimObjectNetInterfaceoperator= (const DtSimObjectNetInterface &orig)
 

Friends

class DtVrlinkNetworkInterface
 
class DtPrintObjectStatusCommand
 
class DtPrintOrgViewCommand
 

Constructor & Destructor Documentation

makVrf::DtSimObjectNetInterface::DtSimObjectNetInterface ( )
private

default constructor

makVrf::DtSimObjectNetInterface::DtSimObjectNetInterface ( const DtSimObjectNetInterface orig)
private

copy constructor

makVrf::DtSimObjectNetInterface::DtSimObjectNetInterface ( DtStateData simObject,
DtVrlinkNetworkInterface ,
bool  publishObject = true 
)

read/writable constructor Publish object flag indicate whether or not locally simulated objects should actually publish the object on the network. If flag is false, no PDUs/RPR interactions should be sent over the network for the object.

virtual makVrf::DtSimObjectNetInterface::~DtSimObjectNetInterface ( )
virtual

destructor

Member Function Documentation

const DtSimObjectNetInterface& makVrf::DtSimObjectNetInterface::operator= ( const DtSimObjectNetInterface orig)
private

assignment operator

virtual bool makVrf::DtSimObjectNetInterface::init ( const DtEntityIdentifier &  id = DtEntityIdentifier())
inlinevirtual

Derived classes that need to perform virtual construction my override this function as desired.

Reimplemented in makVrf::DtWeatherLocalNetInterface, makVrf::DtSimLocalEntityNetInterface, makVrf::DtSimLocalEnvironmentalNetInterface, and makVrf::DtCloudLayerLocalNetInterface.

virtual void makVrf::DtSimObjectNetInterface::tick ( )
virtual

Clears the changed flag for the tick, then calls onTick(). Derived classes override onTick() to perform the work of updating or retrieving data in the network state repository. If overridden, make sure to call down to this base class version first, to ensure that the object changed flag is cleared before any other functions are called.

Reimplemented in makVrf::DtStateComponentNetInterface.

virtual void makVrf::DtSimObjectNetInterface::onTick ( )
pure virtual
virtual bool makVrf::DtSimObjectNetInterface::isUnit ( ) const
pure virtual
virtual bool makVrf::DtSimObjectNetInterface::isEntity ( ) const
pure virtual
virtual bool makVrf::DtSimObjectNetInterface::isEnvironmental ( ) const
pure virtual
virtual bool makVrf::DtSimObjectNetInterface::wantsToCreatePublisher ( ) const
pure virtual
virtual bool makVrf::DtSimObjectNetInterface::isLocal ( ) const
pure virtual
virtual DtString makVrf::DtSimObjectNetInterface::type ( ) const
pure virtual

Returns the type of net interface object. Strings are defined in netIfTypes.h.

Implemented in makVrf::DtGlobalEnvironmentLocalNetInterface, makVrf::DtSimAggregateLocalEntityNetInterface, makVrf::DtSimIndividualLocalEntityNetInterface, makVrf::DtSimLocalControlObjectNetInterface, makVrf::DtTaskVisualizationLocalNetInterface, makVrf::DtSimRemoteEnvironmentalNetInterface, makVrf::DtSimAggregateRemoteEntityNetInterface, makVrf::DtWeatherLocalNetInterface, makVrf::DtMetocServiceLocalNetInterface, makVrf::DtSimIndividualRemoteEntityNetInterface, makVrf::DtSimLocalEnvironmentalNetInterface, makVrf::DtRemoteTacticalSmokeNetInterface, makVrf::DtActiveSonarLocalNetInterface, makVrf::DtSimLocalTacticalSmokeNetInterface, makVrf::DtSimPseudoAggregateLocalEntityNetInterface, makVrf::DtCloudLayerLocalNetInterface, makVrf::DtEmitterSystemLocalNetInterface, makVrf::DtUnderwaterAcousticsLocalNetInterface, makVrf::DtDynamicTerrainLocalNetInterface, makVrf::DtRadioTransmitterLocalNetInterface, makVrf::DtRadioReceiverLocalNetInterface, makVrf::DtRadioReceiverRemoteNetInterface, makVrf::DtRadioTransmitterRemoteNetInterface, makVrf::DtSensorFieldOfViewLocalNetInterface, makVrf::DtActiveSonarRemoteNetInterface, makVrf::DtEmitterSystemRemoteNetInterface, makVrf::DtIffLocalNetInterface, makVrf::DtLaserDesignatorLocalNetInterface, makVrf::DtSimPseudoAggregateLocalEntityWithPropertiesNetInterface, makVrf::DtVrfAggregateRemoteEntityWithPropertiesNetInterface, makVrf::DtVrfIndividualRemoteEntityWithPropertiesNetInterface, makVrf::DtDynamicTerrainRemoteNetInterface, makVrf::DtIffRemoteNetInterface, makVrf::DtLocalEngineeringObjectNetInterface, makVrf::DtSimLocalControlObjectWithPropertiesNetInterface, makVrf::DtVrfRemoteEnvironmentalWithPropertiesNetInterface, makVrf::DtLaserDesignatorRemoteNetInterface, makVrf::DtRemoteEngineeringObjectNetInterface, makVrf::DtSimAggregateLocalEntityWithPropertiesNetInterface, makVrf::DtSimIndividualLocalEntityWithPropertiesNetInterface, makVrf::DtUnderwaterAcousticsRemoteNetInterface, makVrf::DtVrfIndividualRemoteEntityNetInterface, makVrf::DtNavAidRadioTransmitterLocalNetInterface, makVrf::DtVrfRemoteEnvironmentalNetInterface, makVrf::DtNavAidRadioTransmitterRemoteNetInterface, makVrf::DtVrfAggregateRemoteEntityNetInterface, makVrf::DtCloudLayerRemoteNetInterface, makVrf::DtGlobalEnvironmentRemoteNetInterface, makVrf::DtWeatherRemoteNetInterface, DtIndividualLocalEntityNetInterfaceWithTemperature, and DtIndividualRemoteEntityNetInterfaceWithTemperature.

virtual int makVrf::DtSimObjectNetInterface::maxNameLength ( ) const
virtual
Deprecated:
To be removed after VR-Forces version 3.11 Calls maxNameLengthForInterfaceType(type()).
virtual void makVrf::DtSimObjectNetInterface::toBeRemoved ( )
virtual

Called when this object is removed.

Reimplemented in makVrf::DtSimRemoteEnvironmentalNetInterface, and makVrf::DtSimRemoteEntityNetInterface.

virtual bool makVrf::DtSimObjectNetInterface::publishObject ( ) const
inlinevirtual
virtual RTI::ObjectClassHandle makVrf::DtSimObjectNetInterface::objectClassHandle ( ) const
pure virtual
static void makVrf::DtSimObjectNetInterface::setNonVrfObjectsUUIDScheme ( const DtString )
static

Sets the UUID scheme for non vrf objects. The default is entity-identifier. Options are: entity-identifier global-identifier marking-text.

static DtString makVrf::DtSimObjectNetInterface::nonVrfObjectsUUIDScheme ( )
static

Sets the UUID scheme for non vrf objects. The default is entity-identifier. Options are: entity-identifier global-identifier marking-text.

static void makVrf::DtSimObjectNetInterface::setNonVrfUUIDResolver ( DtNonVrfUUIDResolver )
static

Sets the resolver that is to be used when resolving non-VR-Forces uuids. If one exists, and is owned by VRF, it will be deleted. The current scheme will not be applied to the newly set resolver.

static DtNonVrfUUIDResolver* makVrf::DtSimObjectNetInterface::nonVrfUUIDResolver ( )
static
static void makVrf::DtSimObjectNetInterface::addSimObjectNetInterfaceCreatorFcn ( const DtString type,
DtSimObjectNetIfaceCreatorFcn  fcn 
)
static

Adds a net interface creator function to the net interface factory. Strings are defined in netIfTypes.h.

static void makVrf::DtSimObjectNetInterface::setFactory ( DtSimObjectNetInterfaceFactory factory)
static
static DtSimObjectNetInterfaceFactory* makVrf::DtSimObjectNetInterface::factory ( )
static
static DtSimObjectNetInterface* makVrf::DtSimObjectNetInterface::createNetInterface ( const DtString type,
DtStateData simObject,
DtVrlinkNetworkInterface ,
bool  publishObject = true 
)
static

Creates a new net interface object using the factory.

static int makVrf::DtSimObjectNetInterface::maxNameLengthForInterfaceType ( const DtString interfaceTypeString)
static
Returns
The maximum name length that will be transmitted by a network interface of the specified type.
Parameters
interfaceTypeStringmust be of a type specified in vrfNetIfTypes.h
virtual void makVrf::DtSimObjectNetInterface::parallelTick ( )
virtual

Part of the parallel VRL interface, calls this to update in a parallel way.

virtual void makVrf::DtSimObjectNetInterface::forceUpdate ( )
virtual
bool makVrf::DtSimObjectNetInterface::runFullyThreaded ( ) const
protected
const DtStateData* makVrf::DtSimObjectNetInterface::vrfObject ( ) const
inlineprotected
DtStateData* makVrf::DtSimObjectNetInterface::nextFrameVrfObject ( )
inlineprotected
virtual const DtStateRepository* makVrf::DtSimObjectNetInterface::networkState ( ) const
protectedvirtual

this is a pointer to the VR-Link network state repository create by either the contained publisher or reflected object

Friends And Related Function Documentation

friend class DtVrlinkNetworkInterface
friend
friend class DtPrintObjectStatusCommand
friend
friend class DtPrintOrgViewCommand
friend

Member Data Documentation

tbb::spin_rw_mutex makVrf::DtSimObjectNetInterface::thePublisherCreationMutex
static
tbb::spin_rw_mutex makVrf::DtSimObjectNetInterface::thePublisherTickMutex
static
DtStateData* makVrf::DtSimObjectNetInterface::mySimObject
protected
DtVrlinkNetworkInterface* makVrf::DtSimObjectNetInterface::myObjectManager
protected
DtStateRepository* makVrf::DtSimObjectNetInterface::myNetworkState
protected
DtSimObjectNetInterfaceFactory* makVrf::DtSimObjectNetInterface::theFactory
staticprotected
DtNonVrfUUIDResolver* makVrf::DtSimObjectNetInterface::theNonVrfUUIDResolver
staticprotected
bool makVrf::DtSimObjectNetInterface::myNeedsNetworkSetup
protected
DtNetInterfaceParallelLock makVrf::DtSimObjectNetInterface::myLock
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)