WSF
WsfComponent Class Referenceabstract

#include <WsfComponent.hpp>

Inheritance diagram for WsfComponent:

Public Member Functions

virtual ~WsfComponent ()=default

Required interface.

These methods must be implemented by the derived class.

virtual WsfComponentCloneComponent () const =0
virtual WsfStringId GetComponentName () const =0
virtual const int * GetComponentRoles () const =0
virtual void * QueryInterface (int aRole)=0
virtual int GetComponentInitializationOrder () const

Additional query methods.

A more type-safe version of QueryInterface. Usage:

WsfProcessor* procPtr;
if (componentPtr->QueryInterfaceT(procPtr)) {
... procPtr is valid
}
Definition WsfProcessor.hpp:39
template<typename T>
bool QueryInterfaceT (T *&aRolePtr)
bool ComponentHasRole (int aRole)
 Returns true if the component has the specified role.

Common methods that are widely used.

These methods a needed by components in many contexts. They are completely optional and are are provided here as a convenience so derived classes do not have to define.

virtual bool PreInitialize (double aSimTime)
virtual bool Initialize (double aSimTime)
virtual bool Initialize2 (double aSimTime)
virtual void PreInput ()
virtual bool ProcessInput (UtInput &aInput)

Detailed Description

A generic object with discoverable interfaces. WsfComponent is the non-templated version of a component. This contains the items that are not dependent on the type of object to which the component is attached.

Constructor & Destructor Documentation

◆ ~WsfComponent()

virtual WsfComponent::~WsfComponent ( )
virtualdefault

Member Function Documentation

◆ CloneComponent()

virtual WsfComponent * WsfComponent::CloneComponent ( ) const
pure virtual

Clones a component. May return null if component does not support clone.

Implemented in wsf::altloc::Component, wsf::comm::Comm, wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::ComponentHW_LASER, wsf::comm::ComponentHW_Subsurface, wsf::comm::medium::ContainerComponent< PARENT >, wsf::comm::ProtocolIGMP, wsf::comm::ProtocolInterface, wsf::comm::router::ProtocolAdHoc, wsf::comm::router::ProtocolInterface, wsf::comm::router::ProtocolLegacy, wsf::comm::router::ProtocolMulticast, wsf::comm::router::ProtocolOSPF, wsf::comm::router::rip::RIPv2, wsf::comm::router::Router, wsf::cyber::Constraint, wsf::cyber::Protect, wsf::UCI_AMTI_Component, wsf::UCI_Computer, wsf::UCI_ESM_Component, wsf::UCI_IRST_Component, wsf::UCI_WeaponComponent, wsf::xio::CommComponent, WsfBrawlerProcessor, WsfCallback, WsfChaffEjector, WsfChaffParcel, WsfCommandChain, WsfCTD_SensorComponent, WsfDirectedEnergyWeapon, WsfEW_CommComponent, WsfEW_RcvrComponent, WsfEW_Result, WsfEW_SensorComponent, WsfEW_XmtrComponent, WsfExclusionSensorComponent, WsfFuel, WsfGeoPoint, WsfIntersectMesh, WsfLASER_CommXmtrComponent, WsfLASER_RcvrComponent, WsfLASER_XmtrComponent, WsfLaunchHandoffData, WsfMilDisInterface, WsfMilDisPlatform, WsfMilExtInterface, WsfMoonLOS_SensorComponent, WsfMover, WsfMultiresolutionWrapperMetaModel< DerivedComponent >, WsfNavigationErrors, WsfObserver::Comm, WsfObserver::ProtocolInterface, WsfObserver::Router, WsfPlatform, WsfProcessor, WsfSensor, WsfSolarElevationAtTargetSensorComponent, WsfSolarIlluminationComponent, WsfThermalSystem, WsfTrackManager, WsfTRIMSIM_SensorComponent, WsfVisualPart, WsfWeapon, WsfWeaponPlatformExtension, WsfWeaponTaskManager, WsfXIO_WeaponComponent, and WsfZone.

Referenced by WsfComponentList::CopyAllP().

◆ ComponentHasRole()

bool WsfComponent::ComponentHasRole ( int aRole)
inline

Returns true if the component has the specified role.

References QueryInterface().

Referenced by WsfComponentList::FindComponentP(), WsfComponentList::RemoveComponentP(), and WsfDisWeaponEvents::WeaponFired().

◆ GetComponentInitializationOrder()

virtual int WsfComponent::GetComponentInitializationOrder ( ) const
inlinevirtual

◆ GetComponentName()

virtual WsfStringId WsfComponent::GetComponentName ( ) const
pure virtual

Returns the component's name. Each component in a component list has a unique name. Names are usually defined by the user, but they may also be generated by code and prefixed with a '#' to guarantee no collisions with user-defined names.

Implemented in wsf::altloc::Component, wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::ComponentHW_LASER, wsf::comm::ComponentHW_Subsurface, wsf::comm::medium::ContainerComponent< PARENT >, wsf::comm::ProtocolInterface, wsf::comm::router::ProtocolInterface, wsf::comm::router::Router, wsf::cyber::Constraint, wsf::UCI_Component, wsf::xio::CommComponent, WsfCallback, WsfCTD_SensorComponent, WsfEW_CommComponent, WsfEW_RcvrComponent, WsfEW_Result, WsfEW_SensorComponent, WsfEW_XmtrComponent, WsfExclusionSensorComponent, WsfLASER_RcvrComponent, WsfLASER_XmtrComponent, WsfMilDisInterface, WsfMilDisPlatform, WsfMilExtInterface, WsfMoonLOS_SensorComponent, WsfMultiresolutionPlatformComponent< DerivedComponent >, WsfObserver::ProtocolInterface, WsfObserver::Router, WsfPlatform, WsfPlatformPart, WsfSimpleComponentT< WsfComponentT< PARENT_TYPE > >, WsfSimpleComponentT< WsfPlatformComponent >, WsfSimpleComponentT< WsfWeaponComponent >, WsfSolarElevationAtTargetSensorComponent, WsfSolarIlluminationComponent, WsfTRIMSIM_SensorComponent, WsfWeaponPlatformExtension, WsfWeaponTaskManager, and WsfZone.

Referenced by WsfComponentList::AddComponentP(), WsfPlatform::Initialize(), WsfPlatform::Initialize2(), WsfVariableBase::ObjectName(), and WsfComponentListT< WsfComponentT< Comm > >::RemoveComponent().

◆ GetComponentRoles()

virtual const int * WsfComponent::GetComponentRoles ( ) const
pure virtual

Returns a zero-terminated array of component roles. Note that the array should be in decreasing order of specificity and should generally the inheritance hierarchy. The first entry should be the components 'primary' role. For example a sensor would do the following:

return roles;
@ cWSF_COMPONENT_SENSOR
A 'sensor' component (WsfSensor).
Definition WsfComponentRoles.hpp:105
@ cWSF_COMPONENT_PLATFORM_PART
The component derives from WsfPlatformPart.
Definition WsfComponentRoles.hpp:98
@ cWSF_COMPONENT_ARTICULATED_PART
The component derives from WsfArticulatedPart.
Definition WsfComponentRoles.hpp:99

Implemented in wsf::altloc::Component, wsf::comm::Comm, wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::ComponentHW_LASER, wsf::comm::ComponentHW_Subsurface, wsf::comm::medium::ContainerComponent< PARENT >, wsf::comm::ProtocolIGMP, wsf::comm::ProtocolInterface, wsf::comm::router::ProtocolAdHoc, wsf::comm::router::ProtocolInterface, wsf::comm::router::ProtocolLegacy, wsf::comm::router::ProtocolMulticast, wsf::comm::router::ProtocolOSPF, wsf::comm::router::rip::RIPv2, wsf::comm::router::Router, wsf::cyber::Constraint, wsf::UCI_AMTI_Component, wsf::UCI_Component, wsf::UCI_Computer, wsf::UCI_ESM_Component, wsf::UCI_IRST_Component, wsf::UCI_PartComponent, wsf::UCI_SensorComponent, wsf::UCI_WeaponComponent, wsf::xio::CommComponent, WsfArticulatedPart, WsfBrawlerProcessor, WsfCallback, WsfCTD_SensorComponent, WsfDirectedEnergyWeapon, WsfEW_CommComponent, WsfEW_RcvrComponent, WsfEW_Result, WsfEW_SensorComponent, WsfEW_XmtrComponent, WsfExclusionSensorComponent, WsfFuel, WsfLASER_RcvrComponent, WsfLASER_XmtrComponent, WsfMilDisInterface, WsfMilDisPlatform, WsfMilExtInterface, WsfMoonLOS_SensorComponent, WsfMover, WsfMultiresolutionPlatformComponent< DerivedComponent >, WsfObserver::Comm, WsfObserver::ProtocolInterface, WsfObserver::Router, WsfPlatform, WsfPlatformPart, WsfProcessor, WsfRF_Jammer, WsfSensor, WsfSimpleComponentT< WsfComponentT< PARENT_TYPE > >, WsfSimpleComponentT< WsfPlatformComponent >, WsfSimpleComponentT< WsfWeaponComponent >, WsfSolarElevationAtTargetSensorComponent, WsfSolarIlluminationComponent, WsfSpaceMoverBase, WsfTaskManager, WsfThermalSystem, WsfTRIMSIM_SensorComponent, WsfVisualPart, WsfWeapon, WsfWeaponPlatformExtension, WsfWeaponTaskManager, and WsfZone.

Referenced by WsfComponentList::AddComponentP(), and WsfComponentListT< WsfComponentT< Comm > >::RemoveComponent().

◆ Initialize()

bool WsfComponent::Initialize ( double aSimTime)
virtual

Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).

The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful (bad input data, etc.)
Note
This method should NOT add any other components to the platform. This MUST be done in PreInitialize().

Reimplemented in TargetMover, wsf::comm::Comm, wsf::comm::Component, wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::medium::ContainerComponent< PARENT >, wsf::comm::ProtocolIGMP, wsf::comm::ProtocolInterface, wsf::comm::router::ProtocolAdHoc, wsf::comm::router::ProtocolInterface, wsf::comm::router::ProtocolLegacy, wsf::comm::router::ProtocolMulticast, wsf::comm::router::ProtocolOSPF, wsf::comm::router::rip::RIPv2, wsf::comm::router::Router, wsf::comm::router::RouterComponent, wsf::cyber::Protect, wsf::six_dof::GuidanceComputer, wsf::six_dof::Mover, wsf::six_dof::RigidBodyMover, wsf::UCI_Computer, wsf::UCI_SensorComponent, WsfAcousticSensor, WsfAirMover, WsfARGO8_Mover, WsfArticulatedPart, WsfAssetManager, WsfBattleManager, WsfBeamDirector, WsfBMDisseminateC2, WsfBMSensorsManager, WsfBMWeaponsManager, WsfBrawlerFuel, WsfBrawlerMover, WsfBrawlerProcessor, WsfChaffEjector, WsfChaffMover, WsfChaffParcel, WsfChaffWeapon, WsfClassificationProcessor, WsfCoherentSensorProcessor, WsfCommandChain, WsfCompositeSensor, WsfCTD_SensorComponent, WsfCuedLaserWeapon, WsfDirectionFinderProcessor, WsfEOIR_Sensor, WsfEW_CommComponent, WsfEW_RcvrComponent, WsfEW_SensorComponent, WsfEW_XmtrComponent, WsfExchangeProcessor, WsfExclusionSensorComponent, WsfExplicitWeapon, WsfFollower, WsfFormationFlyer, WsfFuel, WsfFusionCenter, WsfGeometricSensor, WsfGuidanceComputer, WsfGuidedMover, WsfGuidedMoverBase, WsfHybridMover, WsfImageProcessor, WsfImplicitWeapon, WsfIntersectProcessor, WsfIRST_Sensor, WsfIterativeRouteMover, WsfJTIDS_Terminal, WsfL16::ComputerProcessor, WsfLADAR_Sensor, WsfLASER_CommXmtrComponent, WsfLASER_RcvrComponent, WsfLASER_XmtrComponent, WsfLaserDesignator, WsfLaserTracker, WsfLaserWeapon, WsfLinkedProcessor, WsfMath3D_Mover, WsfMessageProcessor, WsfMilDisInterface, WsfMoonLOS_SensorComponent, WsfMover, WsfNavigationErrors, WsfNORAD_SpaceMover, WsfObserver::Comm, WsfObserver::ProtocolInterface, WsfObserver::Router, WsfOffsetMover, WsfOpticalSensor, WsfOrbitalConjunctionProcessor, WsfOTH_RadarSensor, WsfP6DOF_GuidanceComputer, WsfP6DOF_Mover, WsfParabolicMover, WsfPassiveSensor, WsfPerceptionProcessor, WsfPlatformPart, WsfProcessor, WsfProcessorComponent, WsfQuantumTaskerProcessor, WsfRadarSensor, WsfRF_Jammer, WsfRIPRProcessor, WsfRoadMover, WsfRotorcraftMover, WsfRouteMover, WsfSA_Processor, WsfSAR_Sensor, WsfScriptCallback, WsfScriptProcessor, WsfScriptStateMachineProcessor, WsfSensor, WsfSensorComponent, WsfSensorProcessor, WsfSensorsManagerFov, WsfShadowMover, WsfSimpleSensorsManager, WsfSolarElevationAtTargetSensorComponent, WsfSolarIlluminationComponent, WsfSOSM_Sensor, WsfSpaceMover, WsfSpaceMoverBase, WsfStraightLineMover, WsfSubsurfaceMover, WsfSurfaceWaveRadarSensor, WsfTabularRateFuel, WsfTankedFuel, WsfTaskManager, WsfTaskProcessor, WsfTBM_Mover, WsfThermalSystem, WsfThreatProcessor, WsfTowedMover, WsfTrackManager, WsfTrackProcessor, WsfTrackStateControllerProcessor, WsfTSPI_Mover, WsfUplinkProcessor, WsfVariableRateFuel, WsfVisualPart, WsfWaypointMover, WsfWeapon, WsfWeaponComponent, WsfWeaponFuse, WsfWeaponPlatformExtension, WsfWeaponsManagerAI, WsfWeaponsManagerSAM, WsfWeaponTaskManager, WsfWeaponThreatProcessor, WsfWeaponTrackProcessor, and WsfZone.

Referenced by wsf::UCI_Computer::Initialize(), wsf::UCI_SensorComponent::Initialize(), WsfChaffParcel::Initialize(), WsfLASER_RcvrComponent::Initialize(), WsfLASER_XmtrComponent::Initialize(), and WsfPlatform::Initialize().

◆ Initialize2()

bool WsfComponent::Initialize2 ( double aSimTime)
virtual

Perform phase 2 initialization. This is called by WsfPlatform::Initialize() during phase 2 of platform initialization. This method is typically used when a component may have some dependency on another component having completed its phase 1 initialization. The component should be ready for use in the simulation upon completion of this method.

The order in which components are initialized is defined by GetComponentInitializationOrder.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful.
Note
This method MUST NOT add any other components to the platform. This MUST be done in PreInitialize().

Reimplemented in Fires::FiresMover, wsf::comm::Comm, wsf::comm::Component, wsf::comm::router::Router, wsf::comm::router::RouterComponent, wsf::six_dof::Fuel, wsf::UCI_AMTI_Component, wsf::UCI_Component, wsf::UCI_ESM_Component, wsf::UCI_IRST_Component, wsf::UCI_PartComponent, wsf::UCI_SensorComponent, wsf::UCI_WeaponComponent, WsfARGO8_Mover, WsfAssetManager, WsfBattleManager, WsfBMDisseminateC2, WsfBMSensorsManager, WsfBMWeaponsManager, WsfBrawlerFuel, WsfCoherentSensorProcessor, WsfCompositeSensor, WsfCuedLaserWeapon, WsfEW_CommComponent, WsfExplicitWeapon, WsfFuel, WsfGuidanceComputer, WsfGuidedMover, WsfGuidedMoverBase, WsfIntegratingSpaceMover, WsfLaserWeapon, WsfMover, WsfNavigationErrors, WsfObserver::Comm, WsfObserver::Router, WsfP6DOF_Fuel, WsfPerfectTracker, WsfPlatformPart, WsfProcessor, WsfProcessorComponent, WsfQuantumTaskerProcessor, WsfRIPRProcessor, WsfRotorcraftMover, WsfRouteMover, WsfSA_Processor, WsfScriptProcessor, WsfSensor, WsfSensorComponent, WsfSensorsManagerFov, WsfSimpleSensorsManager, WsfSpaceMoverBase, WsfTaskManager, WsfTaskProcessor, WsfTBM_Mover, WsfTrackManager, WsfWeapon, WsfWeaponComponent, WsfWeaponFuse, WsfWeaponsManagerAI, WsfWeaponsManagerSAM, and WsfWeaponTrackProcessor.

Referenced by wsf::comm::Comm::Initialize2(), WsfPlatform::Initialize2(), WsfSensor::Initialize2(), and WsfWeapon::Initialize2().

◆ PreInitialize()

bool WsfComponent::PreInitialize ( double aSimTime)
virtual

Perform pre-initializion function. This is called by WsfPlatform::Initialize prior to actually initializing the components on a platform (i.e.: calling Initialize and Initialize2 for each component). The primary reason for this method is to allow components to add other components that will then be subsequently initialized. The component may examine the component list and add components, but it must not assume ANYTHING about the actual state of the component.

Parameters
aSimTimeThe current simulation time.
Returns
true if successful or false if unsuccessful (bad input data, etc.)

Reimplemented in wsf::altloc::Component, wsf::comm::Comm, wsf::comm::Component, wsf::comm::router::Router, wsf::comm::router::RouterComponent, wsf::UCI_Computer, wsf::UCI_SensorComponent, WsfLASER_CommXmtrComponent, WsfLaserWeapon, WsfMultiresolutionPlatformComponent< DerivedComponent >, WsfObserver::Comm, WsfObserver::Router, WsfProcessor, WsfProcessorComponent, WsfQuantumTaskerProcessor, WsfSensor, WsfSensorComponent, WsfSpaceMoverBase, WsfTaskManager, WsfWeapon, and WsfWeaponComponent.

Referenced by WsfPlatform::Initialize(), wsf::comm::Comm::PreInitialize(), wsf::comm::router::Router::PreInitialize(), wsf::UCI_Computer::PreInitialize(), wsf::UCI_SensorComponent::PreInitialize(), WsfMultiresolutionPlatformComponent< DerivedComponent >::PreInitialize(), WsfProcessor::PreInitialize(), WsfSensor::PreInitialize(), WsfWeapon::PreInitialize(), and WsfPlatform::SwapMover().

◆ PreInput()

void WsfComponent::PreInput ( )
virtual

Perform pre-input processing. This is called in certain contexts just before input processing is FIRST done for a component (See WsfObjectTypeListBase::LoadComponentP.) The primary motivation is to allow the newly created component to invoke the type/role-specific PreInput method in the component factories, which may in turn add any sub-components that MAY be required for input processing or for run-time.

This is currently implemented only for platform level components such as WsfComm, WsfProcessor, WsfSensor and some components implemented in optional projects. You can look at the PreInput methods in each of these and see they are very simple.

The reason for this is that WsfObjectTypeListBase::LoadComponentP cannot simply invoke the PreInput methods in the component factories. PreInput is only defined in the template WsfComponentFactoryT<>, and the PreInput method in the template defines a method whose argument is a reference to the object being created. There is no way for LoadComponentP to do this in general. Delegating it to to component solves the problem.

Note
This method may get called more than once as input objects derive from other input type-objects.

Reimplemented in wsf::comm::Comm, wsf::comm::router::Router, WsfObserver::Comm, WsfObserver::Router, WsfProcessor, WsfSensor, and WsfWeapon.

Referenced by WsfObjectTypeListBase::LoadTypeP().

◆ ProcessInput()

bool WsfComponent::ProcessInput ( UtInput & aInput)
virtual

Evaluate the current input command and determine if it is one processed by the component. The component should get the current command from the input stream and determine if it is one that it recognizes. If it does not recognize the command then it should leave the command in the input stream and return false. If it does recognize the command then it should process the command and return true. If invalid arguments are encountered then it should throw an exception.

Parameters
aInputThe input stream.
Returns
true if the current command was recognized (and processed), or false if the command was not recognized.
Exceptions
UtInput::ExceptionBaseif an invalid input was encountered.

Reimplemented in Fires::FiresMover, TargetMover, wsf::altloc::Component, wsf::comm::Comm, wsf::comm::Component, wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::ComponentHW_LASER, wsf::comm::ComponentHW_Subsurface, wsf::comm::medium::ContainerComponent< PARENT >, wsf::comm::ProtocolIGMP, wsf::comm::ProtocolInterface, wsf::comm::router::ProtocolAdHoc, wsf::comm::router::ProtocolInterface, wsf::comm::router::ProtocolOSPF, wsf::comm::router::rip::RIPv2, wsf::comm::router::Router, wsf::comm::router::RouterComponent, wsf::cyber::Constraint, wsf::cyber::Protect, wsf::six_dof::ExplicitWeapon, wsf::six_dof::Fuel, wsf::six_dof::Mover, wsf::six_dof::PointMassMover, wsf::six_dof::RigidBodyMover, wsf::UCI_Component, wsf::UCI_PartComponent, wsf::UCI_SensorComponent, wsf::UCI_WeaponComponent, WsfAirMover, WsfAirTargetFuse, WsfARGO8_Mover, WsfArticulatedPart, WsfAssetManager, WsfBattleManager, WsfBeamDirector, WsfBMDisseminateC2, WsfBMSensorsManager, WsfBMWeaponsManager, WsfBrawlerFuel, WsfBrawlerMover, WsfBrawlerProcessor, WsfCallback, WsfChaffEjector, WsfChaffParcel, WsfChaffWeapon, WsfClassificationProcessor, WsfCodedZone, WsfCoherentSensorProcessor, WsfCompositeSensor, WsfCuedLaserWeapon, WsfDirectionFinderProcessor, WsfEOIR_Sensor, WsfEW_CommComponent, WsfExchangeProcessor, WsfExplicitWeapon, WsfFollower, WsfFormationFlyer, WsfFuel, WsfFusionCenter, WsfGeometricSensor, WsfGeoPoint, WsfGroundMover, WsfGroundTargetFuse, WsfGuidanceComputer, WsfGuidedMover, WsfGuidedMoverBase, WsfHybridMover, WsfImageProcessor, WsfIntersectMesh, WsfIntersectProcessor, WsfIterativeRouteMover, WsfL16::ComputerProcessor, WsfLADAR_Sensor, WsfLASER_CommXmtrComponent, WsfLASER_RcvrComponent, WsfLASER_XmtrComponent, WsfLaserDesignator, WsfLaserTracker, WsfLaserWeapon, WsfLinkedProcessor, WsfMath3D_Mover, WsfMessageProcessor, WsfMilDisInterface, WsfMilExtInterface, WsfMover, WsfMultiresolutionPlatformComponent< DerivedComponent >, WsfMultiresolutionWrapperMetaModel< DerivedComponent >, WsfNavigationErrors, WsfNORAD_SpaceMover, WsfNullSensor, WsfObserver::Comm, WsfObserver::ProtocolInterface, WsfObserver::Router, WsfOffsetMover, WsfOrbitalConjunctionProcessor, WsfOTH_RadarSensor, WsfP6DOF_ExplicitWeapon, WsfP6DOF_Fuel, WsfP6DOF_GuidanceComputer, WsfP6DOF_Mover, WsfParabolicMover, WsfPassiveSensor, WsfPerceptionProcessor, WsfPerfectTracker, WsfPlatform, WsfPlatformPart, WsfProcessor, WsfProcessorComponent, WsfQuantumTaskerProcessor, WsfRadarSensor, WsfRF_Jammer, WsfRIPRProcessor, WsfRoadMover, WsfRotorcraftMover, WsfRouteMover, WsfSA_Processor, WsfSAR_Sensor, WsfScriptCallback, WsfScriptProcessor, WsfScriptStateMachineProcessor, WsfSensor, WsfSensorComponent, WsfSensorProcessor, WsfSensorsManagerFov, WsfShadowMover, WsfSimpleSensorsManager, WsfSOSM_Sensor, WsfSpaceMover, WsfSpaceMoverBase, WsfStraightLineMover, WsfSurfaceMover, WsfSurfaceWaveRadarSensor, WsfTabularRateFuel, WsfTankedFuel, WsfTaskManager, WsfTaskProcessor, WsfTBM_Mover, WsfThermalSystem, WsfThreatProcessor, WsfTowedMover, WsfTrackManager, WsfTrackProcessor, WsfTrackStateControllerProcessor, WsfTRIMSIM_Processor, WsfTSPI_Mover, WsfUnclassifiedAssetManager, WsfUnclassifiedBattleManager, WsfUnclassifiedDisseminateC2, WsfUplinkProcessor, WsfVariableRateFuel, WsfVisualPart, WsfWaypointMover, WsfWeapon, WsfWeaponComponent, WsfWeaponFuse, WsfWeaponsManagerAI, WsfWeaponsManagerSAM, WsfWeaponTaskManager, WsfWeaponThreatProcessor, WsfWeaponTrackProcessor, WsfZone, WsfZoneDefinition, and WsfZoneSet.

Referenced by WsfObjectTypeListBase::LoadTypeP(), WsfComponentListT< WsfComponentT< Comm > >::ProcessComponentInput(), WsfIntersectMesh::ProcessInput(), WsfLASER_RcvrComponent::ProcessInput(), WsfLASER_XmtrComponent::ProcessInput(), and WsfMultiresolutionPlatformComponent< DerivedComponent >::ProcessInput().

◆ QueryInterface()

virtual void * WsfComponent::QueryInterface ( int aRole)
pure virtual

Requests a component's role interface. A component can support one or more roles.

Parameters
aRoleThe role whose interface is to be returned.
Returns
A pointer to the object if it supports the indicated role, or 'null' if it does not. Usage: WsfProcessor* procPtrOrNull = (WsfProcessor*)componentPtr->QueryComponentInterface(cWSF_COMPONENT_PROCESSOR);

Implemented in wsf::altloc::Component, wsf::comm::Comm, wsf::comm::ComponentHW, wsf::comm::ComponentHW_JTIDS, wsf::comm::ComponentHW_LASER, wsf::comm::ComponentHW_Subsurface, wsf::comm::medium::ContainerComponent< PARENT >, wsf::comm::ProtocolIGMP, wsf::comm::ProtocolInterface, wsf::comm::router::ProtocolAdHoc, wsf::comm::router::ProtocolInterface, wsf::comm::router::ProtocolLegacy, wsf::comm::router::ProtocolMulticast, wsf::comm::router::ProtocolOSPF, wsf::comm::router::rip::RIPv2, wsf::comm::router::Router, wsf::cyber::Constraint, wsf::cyber::Protect, wsf::UCI_AMTI_Component, wsf::UCI_Component, wsf::UCI_Computer, wsf::UCI_ESM_Component, wsf::UCI_IRST_Component, wsf::UCI_PartComponent, wsf::UCI_SensorComponent, wsf::UCI_WeaponComponent, wsf::xio::CommComponent, WsfArticulatedPart, WsfBrawlerProcessor, WsfCallback, WsfChaffEjector, WsfChaffParcel, WsfCommandChain, WsfCTD_SensorComponent, WsfDirectedEnergyWeapon, WsfEW_CommComponent, WsfEW_RcvrComponent, WsfEW_Result, WsfEW_SensorComponent, WsfEW_XmtrComponent, WsfExclusionSensorComponent, WsfFuel, WsfGeoPoint, WsfIntersectMesh, WsfLASER_RcvrComponent, WsfLASER_XmtrComponent, WsfLaunchHandoffData, WsfMilDisInterface, WsfMilDisPlatform, WsfMilExtInterface, WsfMoonLOS_SensorComponent, WsfMover, WsfMultiresolutionPlatformComponent< DerivedComponent >, WsfNavigationErrors, WsfObserver::Comm, WsfObserver::ProtocolInterface, WsfObserver::Router, WsfPlatform, WsfPlatformPart, WsfProcessor, WsfRF_Jammer, WsfSensor, WsfSolarElevationAtTargetSensorComponent, WsfSolarIlluminationComponent, WsfSpaceMoverBase, WsfTaskManager, WsfThermalSystem, WsfTrackManager, WsfTRIMSIM_SensorComponent, WsfVisualPart, WsfWeapon, WsfWeaponPlatformExtension, WsfWeaponTaskManager, WsfXIO_WeaponComponent, and WsfZone.

Referenced by ComponentHasRole(), and QueryInterfaceT().

◆ QueryInterfaceT()


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved