|
WSF
|
Base class for WsfObjectTypeList. Provides most of the implementation. More...
#include <WsfObjectTypeListBase.hpp>


Public Types | |
| enum | Flags { cREDEFINITION_ALLOWED = 1 , cSINGULAR_BASE_TYPE = 2 , cOBJECT_FACTORY_BASE = 4 , cNO_DELAY_LOAD = 8 , cSIGNATURE_FLAGS = cREDEFINITION_ALLOWED | cNO_DELAY_LOAD } |
| Public Types inherited from WsfObjectTypeListBaseI | |
| typedef std::vector< WsfStringId > | TypeIdList |
Public Member Functions | |
| WsfObjectTypeListBase (const WsfObjectTypeListBase &)=delete | |
| WsfObjectTypeListBase & | operator= (const WsfObjectTypeListBase &)=delete |
| WsfObjectTypeListBase (unsigned int aFlags, const std::string &aBlockName=std::string(), WsfScenario *aScenarioPtr=nullptr) | |
| ~WsfObjectTypeListBase () override | |
| void | Clear () override |
| Clear (Erase) all type entries. | |
| void | GetTypeIds (TypeIdList &aListOfIds) const override |
| Return a vector of the type identifiers currently being controlled by this list. | |
| bool | ProcessInput (UtInput &aInput) override |
| int | Size () const |
| Return the current number of types being maintained by the list. | |
| WsfObject * | Clone (WsfStringId aId) const override=0 |
| WsfObject * | Find (WsfStringId aId) const override=0 |
| const std::string & | GetBlockName () const override |
| WsfScenario * | GetScenario () const |
| Public Member Functions inherited from WsfObjectTypeListBaseI | |
| virtual | ~WsfObjectTypeListBaseI ()=default |
| virtual void | CompleteLoad () |
Protected Types | |
| typedef std::map< WsfStringId, std::unique_ptr< WsfObject > > | TypeMap |
Protected Member Functions | |
| WsfDeferredInput & | GetDeferredInput () const |
| bool | CanDelayLoad () const |
| bool | AddP (WsfStringId aId, std::unique_ptr< WsfObject > aDefinitionPtr) |
| WsfObject * | CloneP (WsfStringId aId) const |
| virtual WsfObject * | FindP (WsfStringId aId) const |
| virtual bool | InitializeTypeP (WsfObject *aObjectPtr)=0 |
| bool | LoadTypeP (UtInput &aInput, WsfObject *&aLoadedObjectPtr) |
| virtual bool | DeferredLoadTypeP (UtInput &aInput, WsfObject *&aLoadedObjectPtr) |
| bool | DeleteComponentP (UtInput &aInput, WsfPlatform &aPlatform, int aRole, bool aIsNamed) |
| bool | LoadComponentP (UtInput &aInput, WsfPlatform &aPlatform, bool aIsAdding, int aRole, bool aIsNamed, bool aIsEditable) |
Protected Attributes | |
| TypeMap | mTypeMap |
| std::vector< std::unique_ptr< WsfObject > > | mRedefinedTypes |
| A list of type objects that have been redefined. | |
| std::set< WsfStringId > | mCoreTypes |
| unsigned int | mFlags |
| const std::string | mBlockName |
| WsfObject *(* | mCreateSingularTypeFunction )() |
| WsfObject *(* | mFactoryCreateFunction )(void *aListPtr, const std::string &aTypeName) |
| WsfObject *(* | mFactoryCreateDefault )() |
| void * | mFactoryPtr |
| WsfScenario * | mScenarioPtr |
Friends | |
| class | WsfObjectTypeListDetail::LoadTypeP_Later |
Base class for WsfObjectTypeList. Provides most of the implementation.
|
protected |
|
delete |
References WsfObjectTypeListBase().
Referenced by operator=(), WsfMultiresolutionTypes< DerivedComponent >::WsfMultiresolutionTypes(), WsfObjectTypeList< SensorErrorModelBase >::WsfObjectTypeList(), WsfObjectTypeList< SensorErrorModelBase >::WsfObjectTypeList(), WsfObjectTypeListBase(), and WsfZoneTypes::WsfZoneTypes().
| WsfObjectTypeListBase::WsfObjectTypeListBase | ( | unsigned int | aFlags, |
| const std::string & | aBlockName = std::string(), | ||
| WsfScenario * | aScenarioPtr = nullptr ) |
|
override |
References Clear().
|
protected |
References cREDEFINITION_ALLOWED, mFlags, mRedefinedTypes, mScenarioPtr, and mTypeMap.
Referenced by WsfObjectTypeList< SensorErrorModelBase >::Add(), WsfObjectTypeList< SensorErrorModelBase >::AddCoreType(), and LoadTypeP().
|
inlineprotected |
References cNO_DELAY_LOAD, and mFlags.
Referenced by CloneP(), and LoadTypeP().
|
overridevirtual |
Clear (Erase) all type entries.
Implements WsfObjectTypeListBaseI.
References mCoreTypes, mRedefinedTypes, and mTypeMap.
Referenced by ~WsfObjectTypeListBase().
|
overridepure virtual |
Implements WsfObjectTypeListBaseI.
Implemented in WsfEM_AttenuationTypes, WsfObjectTypeList< T >, WsfObjectTypeList< Attack >, WsfObjectTypeList< CN2 >, WsfObjectTypeList< Comm >, WsfObjectTypeList< ComputerPart >, WsfObjectTypeList< Constraint >, WsfObjectTypeList< Effect >, WsfObjectTypeList< Grid >, WsfObjectTypeList< Measure >, WsfObjectTypeList< MeasureOutput >, WsfObjectTypeList< Medium >, WsfObjectTypeList< Network >, WsfObjectTypeList< OrbitalPropagatorCondition >, WsfObjectTypeList< Protect >, WsfObjectTypeList< ProtocolInterface >, WsfObjectTypeList< Router >, WsfObjectTypeList< SensorErrorModelBase >, WsfObjectTypeList< Tool >, WsfObjectTypeList< TrackExtrapolationStrategy >, WsfObjectTypeList< UCI_Component >, WsfObjectTypeList< wsf::coverage::Coverage >, WsfObjectTypeList< wsf::SensorErrorModelBase >, WsfObjectTypeList< wsf::space::Atmosphere >, WsfObjectTypeList< WsfAcousticSignature >, WsfObjectTypeList< WsfAdvancedBehaviorTreeNode >, WsfObjectTypeList< WsfAero >, WsfObjectTypeList< WsfAntennaPattern >, WsfObjectTypeList< WsfAttitudeController >, WsfObjectTypeList< WsfBehaviorTreeNode >, WsfObjectTypeList< WsfCallback >, WsfObjectTypeList< WsfChaffParcel >, WsfObjectTypeList< WsfCorrelationStrategy >, WsfObjectTypeList< WsfEM_Attenuation >, WsfObjectTypeList< WsfEM_Clutter >, WsfObjectTypeList< WsfEM_Propagation >, WsfObjectTypeList< WsfEW_EA_EP >, WsfObjectTypeList< WsfEW_Effect >, WsfObjectTypeList< WsfEW_Technique >, WsfObjectTypeList< WsfFalseTarget >, WsfObjectTypeList< WsfFalseTargetScreener >, WsfObjectTypeList< WsfFilter >, WsfObjectTypeList< WsfFuel >, WsfObjectTypeList< WsfFusionStrategy >, WsfObjectTypeList< WsfGroup >, WsfObjectTypeList< WsfHighEnergyLaser >, WsfObjectTypeList< WsfInfraredSignature >, WsfObjectTypeList< WsfInherentContrast >, WsfObjectTypeList< WsfIntersectMesh >, WsfObjectTypeList< WsfLaunchComputer >, WsfObjectTypeList< WsfMaskingPattern >, WsfObjectTypeList< WsfMover >, WsfObjectTypeList< WsfMultiresolutionPlatformComponent< DerivedComponent > >, WsfObjectTypeList< WsfNoiseCloud >, WsfObjectTypeList< WsfOpticalReflectivity >, WsfObjectTypeList< WsfOpticalSignature >, WsfObjectTypeList< WsfOrbitalDynamicsTerm >, WsfObjectTypeList< WsfOrbitalEvent >, WsfObjectTypeList< WsfOrbitalIntegrator >, WsfObjectTypeList< WsfOrbitalManeuvering >, WsfObjectTypeList< WsfPathFinder >, WsfObjectTypeList< WsfPlatform >, WsfObjectTypeList< WsfProcessor >, WsfObjectTypeList< WsfRadarSignature >, WsfObjectTypeList< WsfRoute >, WsfObjectTypeList< WsfRouteNetwork >, WsfObjectTypeList< WsfSensor >, WsfObjectTypeList< WsfThermalSystem >, WsfObjectTypeList< WsfThermalSystemComponent >, WsfObjectTypeList< WsfTrackReportingStrategy >, WsfObjectTypeList< WsfVisualPart >, WsfObjectTypeList< WsfWeapon >, WsfObjectTypeList< WsfWeaponEffects >, and WsfObjectTypeList< WsfZone >.
|
protected |
References CanDelayLoad(), WsfObject::Clone(), FindP(), GetDeferredInput(), mBlockName, WsfDeferredInput::Requires(), and WsfObject::SetType().
Referenced by WsfObjectTypeList< SensorErrorModelBase >::Clone(), LoadComponentP(), wsf::comm::medium::Types::LoadMedium(), wsf::comm::ProtocolTypes::LoadProtocolComponent(), wsf::comm::router::ProtocolTypes::LoadProtocolComponent(), and LoadTypeP().
|
protectedvirtual |
|
protected |
Process input to delete a component instance from a platform.
| aInput | The current input stream. |
| aPlatform | A reference to the platform. |
| aRole | The role of the component (for 'edit'). |
| aIsNamed | 'true' if the component is explicitly named, or false if it is unnamed. |
| UtInput::BadValue | if the requested component instance does not exist. |
References WsfComponentList::DeleteComponent(), and mBlockName.
Referenced by WsfObjectTypeList< SensorErrorModelBase >::DeleteNamedComponent(), WsfObjectTypeList< SensorErrorModelBase >::DeleteUnnamedComponent(), and InitializeTypeP().
|
overridepure virtual |
Implements WsfObjectTypeListBaseI.
Implemented in WsfObjectTypeList< T >, WsfObjectTypeList< Attack >, WsfObjectTypeList< CN2 >, WsfObjectTypeList< Comm >, WsfObjectTypeList< ComputerPart >, WsfObjectTypeList< Constraint >, WsfObjectTypeList< Effect >, WsfObjectTypeList< Grid >, WsfObjectTypeList< Measure >, WsfObjectTypeList< MeasureOutput >, WsfObjectTypeList< Medium >, WsfObjectTypeList< Network >, WsfObjectTypeList< OrbitalPropagatorCondition >, WsfObjectTypeList< Protect >, WsfObjectTypeList< ProtocolInterface >, WsfObjectTypeList< Router >, WsfObjectTypeList< SensorErrorModelBase >, WsfObjectTypeList< Tool >, WsfObjectTypeList< TrackExtrapolationStrategy >, WsfObjectTypeList< UCI_Component >, WsfObjectTypeList< wsf::coverage::Coverage >, WsfObjectTypeList< wsf::SensorErrorModelBase >, WsfObjectTypeList< wsf::space::Atmosphere >, WsfObjectTypeList< WsfAcousticSignature >, WsfObjectTypeList< WsfAdvancedBehaviorTreeNode >, WsfObjectTypeList< WsfAero >, WsfObjectTypeList< WsfAntennaPattern >, WsfObjectTypeList< WsfAttitudeController >, WsfObjectTypeList< WsfBehaviorTreeNode >, WsfObjectTypeList< WsfCallback >, WsfObjectTypeList< WsfChaffParcel >, WsfObjectTypeList< WsfCorrelationStrategy >, WsfObjectTypeList< WsfEM_Attenuation >, WsfObjectTypeList< WsfEM_Clutter >, WsfObjectTypeList< WsfEM_Propagation >, WsfObjectTypeList< WsfEW_EA_EP >, WsfObjectTypeList< WsfEW_Effect >, WsfObjectTypeList< WsfEW_Technique >, WsfObjectTypeList< WsfFalseTarget >, WsfObjectTypeList< WsfFalseTargetScreener >, WsfObjectTypeList< WsfFilter >, WsfObjectTypeList< WsfFuel >, WsfObjectTypeList< WsfFusionStrategy >, WsfObjectTypeList< WsfGroup >, WsfObjectTypeList< WsfHighEnergyLaser >, WsfObjectTypeList< WsfInfraredSignature >, WsfObjectTypeList< WsfInherentContrast >, WsfObjectTypeList< WsfIntersectMesh >, WsfObjectTypeList< WsfLaunchComputer >, WsfObjectTypeList< WsfMaskingPattern >, WsfObjectTypeList< WsfMover >, WsfObjectTypeList< WsfMultiresolutionPlatformComponent< DerivedComponent > >, WsfObjectTypeList< WsfNoiseCloud >, WsfObjectTypeList< WsfOpticalReflectivity >, WsfObjectTypeList< WsfOpticalSignature >, WsfObjectTypeList< WsfOrbitalDynamicsTerm >, WsfObjectTypeList< WsfOrbitalEvent >, WsfObjectTypeList< WsfOrbitalIntegrator >, WsfObjectTypeList< WsfOrbitalManeuvering >, WsfObjectTypeList< WsfPathFinder >, WsfObjectTypeList< WsfPlatform >, WsfObjectTypeList< WsfProcessor >, WsfObjectTypeList< WsfRadarSignature >, WsfObjectTypeList< WsfRoute >, WsfObjectTypeList< WsfRouteNetwork >, WsfObjectTypeList< WsfSensor >, WsfObjectTypeList< WsfThermalSystem >, WsfObjectTypeList< WsfThermalSystemComponent >, WsfObjectTypeList< WsfTrackReportingStrategy >, WsfObjectTypeList< WsfVisualPart >, WsfObjectTypeList< WsfWeapon >, WsfObjectTypeList< WsfWeaponEffects >, and WsfObjectTypeList< WsfZone >.
|
protectedvirtual |
References mTypeMap.
Referenced by CloneP(), WsfObjectTypeList< SensorErrorModelBase >::Find(), and LoadTypeP().
|
inlineoverridevirtual |
Implements WsfObjectTypeListBaseI.
References mBlockName.
|
protected |
|
inline |
References mScenarioPtr.
Referenced by WsfPlatformTypes::CompleteLoad(), WsfEW_EffectTypes::LoadInstance(), WsfEW_TechniqueTypes::LoadInstance(), WsfFilterTypes::LoadInstance(), WsfPathFinderTypes::LoadInstance(), WsfRouteTypes::LoadInstance(), WsfPlatformTypes::LoadType(), WsfPathFinderTypes::ProcessPathFinderInput(), and wsf::comm::router::ProtocolTypes::ProtocolTypes().
|
overridevirtual |
Return a vector of the type identifiers currently being controlled by this list.
Implements WsfObjectTypeListBaseI.
References mTypeMap.
Referenced by WsfPlatformTypes::CompleteLoad(), WsfXIO_PlatformInfoService::HandleTypeListQuery(), WsfZoneAttenuation::Initialize(), WsfMilExtInterface::PrintEmitterTypes(), WsfExtData::WriteEmitterTypes(), and WsfExtData::WriteEntityTypes().
|
protectedpure virtual |
Implemented in WsfObjectTypeList< T >, WsfObjectTypeList< Attack >, WsfObjectTypeList< CN2 >, WsfObjectTypeList< Comm >, WsfObjectTypeList< ComputerPart >, WsfObjectTypeList< Constraint >, WsfObjectTypeList< Effect >, WsfObjectTypeList< Grid >, WsfObjectTypeList< Measure >, WsfObjectTypeList< MeasureOutput >, WsfObjectTypeList< Medium >, WsfObjectTypeList< Network >, WsfObjectTypeList< OrbitalPropagatorCondition >, WsfObjectTypeList< Protect >, WsfObjectTypeList< ProtocolInterface >, WsfObjectTypeList< Router >, WsfObjectTypeList< SensorErrorModelBase >, WsfObjectTypeList< Tool >, WsfObjectTypeList< TrackExtrapolationStrategy >, WsfObjectTypeList< UCI_Component >, WsfObjectTypeList< wsf::coverage::Coverage >, WsfObjectTypeList< wsf::SensorErrorModelBase >, WsfObjectTypeList< wsf::space::Atmosphere >, WsfObjectTypeList< WsfAcousticSignature >, WsfObjectTypeList< WsfAdvancedBehaviorTreeNode >, WsfObjectTypeList< WsfAero >, WsfObjectTypeList< WsfAntennaPattern >, WsfObjectTypeList< WsfAttitudeController >, WsfObjectTypeList< WsfBehaviorTreeNode >, WsfObjectTypeList< WsfCallback >, WsfObjectTypeList< WsfChaffParcel >, WsfObjectTypeList< WsfCorrelationStrategy >, WsfObjectTypeList< WsfEM_Attenuation >, WsfObjectTypeList< WsfEM_Clutter >, WsfObjectTypeList< WsfEM_Propagation >, WsfObjectTypeList< WsfEW_EA_EP >, WsfObjectTypeList< WsfEW_Effect >, WsfObjectTypeList< WsfEW_Technique >, WsfObjectTypeList< WsfFalseTarget >, WsfObjectTypeList< WsfFalseTargetScreener >, WsfObjectTypeList< WsfFilter >, WsfObjectTypeList< WsfFuel >, WsfObjectTypeList< WsfFusionStrategy >, WsfObjectTypeList< WsfGroup >, WsfObjectTypeList< WsfHighEnergyLaser >, WsfObjectTypeList< WsfInfraredSignature >, WsfObjectTypeList< WsfInherentContrast >, WsfObjectTypeList< WsfIntersectMesh >, WsfObjectTypeList< WsfLaunchComputer >, WsfObjectTypeList< WsfMaskingPattern >, WsfObjectTypeList< WsfMover >, WsfObjectTypeList< WsfMultiresolutionPlatformComponent< DerivedComponent > >, WsfObjectTypeList< WsfNoiseCloud >, WsfObjectTypeList< WsfOpticalReflectivity >, WsfObjectTypeList< WsfOpticalSignature >, WsfObjectTypeList< WsfOrbitalDynamicsTerm >, WsfObjectTypeList< WsfOrbitalEvent >, WsfObjectTypeList< WsfOrbitalIntegrator >, WsfObjectTypeList< WsfOrbitalManeuvering >, WsfObjectTypeList< WsfPathFinder >, WsfObjectTypeList< WsfPlatform >, WsfObjectTypeList< WsfProcessor >, WsfObjectTypeList< WsfRadarSignature >, WsfObjectTypeList< WsfRoute >, WsfObjectTypeList< WsfRouteNetwork >, WsfObjectTypeList< WsfSensor >, WsfObjectTypeList< WsfThermalSystem >, WsfObjectTypeList< WsfThermalSystemComponent >, WsfObjectTypeList< WsfTrackReportingStrategy >, WsfObjectTypeList< WsfVisualPart >, WsfObjectTypeList< WsfWeapon >, WsfObjectTypeList< WsfWeaponEffects >, and WsfObjectTypeList< WsfZone >.
References DeferredLoadTypeP(), DeleteComponentP(), LoadComponentP(), and LoadTypeP().
Referenced by LoadTypeP().
|
protected |
Process input to add or edit a component instance on a platform. This method looks at the current input stream and decides if the input pertains to a platform component of the object type maintained by this type list.
| aInput | The current input stream. |
| aPlatform | A reference to the platform. |
| aIsAdding | 'true' if adding a new component, or 'false' if to edit an existing component. |
| aRole | The role of the component. |
| aIsNamed | 'true' if the component is explicitly named, or false if it is unnamed. |
| aIsEditable | 'true' if the component can be edited or modified while added to a platform, 'false' otherwise. |
| UtInput::BadValue | if:
|
| UtInput::OutOfContext | if:
|
References WsfComponentListT< COMPONENT_TYPE >::AddComponent(), CloneP(), WsfComponentListT< COMPONENT_TYPE >::FindComponent(), GetDeferredInput(), mBlockName, WsfDeferredInput::Requires(), and WsfObject::SetName().
Referenced by InitializeTypeP(), WsfObjectTypeList< SensorErrorModelBase >::LoadNamedComponent(), WsfObjectTypeList< SensorErrorModelBase >::LoadUnnamedComponent(), and WsfObjectTypeList< SensorErrorModelBase >::LoadUnnamedComponentWithoutEdit().
|
protected |
References AddP(), CanDelayLoad(), CloneP(), cREDEFINITION_ALLOWED, WsfDeferredInput::DelayLoad(), FindP(), GetDeferredInput(), WsfObject::GetTypeList(), InitializeTypeP(), mBlockName, mCreateSingularTypeFunction, mFactoryCreateDefault, mFactoryCreateFunction, mFactoryPtr, mFlags, mTypeMap, WsfComponent::PreInput(), WsfComponent::ProcessInput(), WsfDeferredInput::Requires(), and WsfObject::SetName().
Referenced by DeferredLoadTypeP(), WsfProcessorTypes::DeferredLoadTypeP(), InitializeTypeP(), and WsfObjectTypeList< SensorErrorModelBase >::LoadType().
|
delete |
References WsfObjectTypeListBase().
|
overridevirtual |
Implements WsfObjectTypeListBaseI.
Reimplemented in WsfPathFinderTypes, and WsfPlatformTypes.
|
inline |
Return the current number of types being maintained by the list.
References mTypeMap.
|
friend |
|
protected |
Referenced by CloneP(), DeleteComponentP(), GetBlockName(), LoadComponentP(), LoadTypeP(), and WsfObjectTypeListBase().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
A list of type objects that have been redefined.
Referenced by AddP(), Clear(), and WsfObjectTypeListBase().
|
protected |
Referenced by AddP(), GetDeferredInput(), GetScenario(), WsfLaunchComputerTypes::LoadInstance(), and WsfObjectTypeListBase().
|
protected |