12#ifndef WSFOBJECTTYPELISTBASE_HPP
13#define WSFOBJECTTYPELISTBASE_HPP
94 friend class WsfObjectTypeListDetail::LoadTypeP_Later;
111 const std::string& aBlockName = std::string(),
117 void Clear()
override;
120 void GetTypeIds(TypeIdList& aListOfIds)
const override;
122 bool ProcessInput(UtInput& aInput)
override;
139 bool AddP(
WsfStringId aId, std::unique_ptr<WsfObject> aDefinitionPtr);
153 bool LoadComponentP(UtInput& aInput,
WsfPlatform& aPlatform,
bool aIsAdding,
int aRole,
bool aIsNamed,
bool aIsEditable);
155 typedef std::map<WsfStringId, std::unique_ptr<WsfObject>>
TypeMap;
168 WsfObject* (*mFactoryCreateFunction)(
void* aListPtr,
const std::string& aTypeName);
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
The interface an object type list must support.
Definition WsfObjectTypeListBase.hpp:38
virtual ~WsfObjectTypeListBaseI()=default
std::vector< WsfStringId > TypeIdList
Definition WsfObjectTypeListBase.hpp:40
virtual void CompleteLoad()
Definition WsfObjectTypeListBase.hpp:46
virtual bool ProcessInput(UtInput &aInput)=0
virtual WsfObject * Find(WsfStringId aId) const =0
virtual void GetTypeIds(TypeIdList &aListOfIds) const =0
virtual WsfObject * Clone(WsfStringId aId) const =0
virtual const std::string & GetBlockName() const =0
Base class for WsfObjectTypeList. Provides most of the implementation.
Definition WsfObjectTypeListBase.hpp:89
TypeMap mTypeMap
Definition WsfObjectTypeListBase.hpp:156
WsfScenario * GetScenario() const
Definition WsfObjectTypeListBase.hpp:132
WsfObject * Clone(WsfStringId aId) const override=0
bool DeleteComponentP(UtInput &aInput, WsfPlatform &aPlatform, int aRole, bool aIsNamed)
Definition WsfObjectTypeList.cpp:304
bool CanDelayLoad() const
Definition WsfObjectTypeListBase.hpp:137
unsigned int mFlags
Definition WsfObjectTypeListBase.hpp:163
virtual bool InitializeTypeP(WsfObject *aObjectPtr)=0
const std::string & GetBlockName() const override
Definition WsfObjectTypeListBase.hpp:130
std::map< WsfStringId, std::unique_ptr< WsfObject > > TypeMap
Definition WsfObjectTypeListBase.hpp:155
bool LoadTypeP(UtInput &aInput, WsfObject *&aLoadedObjectPtr)
Definition WsfObjectTypeList.cpp:164
int Size() const
Return the current number of types being maintained by the list.
Definition WsfObjectTypeListBase.hpp:125
const std::string mBlockName
Definition WsfObjectTypeListBase.hpp:165
std::set< WsfStringId > mCoreTypes
Definition WsfObjectTypeListBase.hpp:161
WsfScenario * mScenarioPtr
Definition WsfObjectTypeListBase.hpp:171
std::vector< std::unique_ptr< WsfObject > > mRedefinedTypes
A list of type objects that have been redefined.
Definition WsfObjectTypeListBase.hpp:159
WsfObject * Find(WsfStringId aId) const override=0
Flags
Definition WsfObjectTypeListBase.hpp:97
@ cSIGNATURE_FLAGS
Definition WsfObjectTypeListBase.hpp:107
@ cREDEFINITION_ALLOWED
Definition WsfObjectTypeListBase.hpp:99
@ cOBJECT_FACTORY_BASE
Definition WsfObjectTypeListBase.hpp:103
@ cSINGULAR_BASE_TYPE
Definition WsfObjectTypeListBase.hpp:101
@ cNO_DELAY_LOAD
Definition WsfObjectTypeListBase.hpp:105
void * mFactoryPtr
Definition WsfObjectTypeListBase.hpp:170
bool LoadComponentP(UtInput &aInput, WsfPlatform &aPlatform, bool aIsAdding, int aRole, bool aIsNamed, bool aIsEditable)
Definition WsfObjectTypeList.cpp:350
virtual bool DeferredLoadTypeP(UtInput &aInput, WsfObject *&aLoadedObjectPtr)
Definition WsfObjectTypeList.cpp:281
WsfObjectTypeListBase(const WsfObjectTypeListBase &)=delete
WsfObjectTypeListBase & operator=(const WsfObjectTypeListBase &)=delete
void Clear() override
Definition WsfObjectTypeListBase.hpp:67
bool ProcessInput(UtInput &aInput) override
Definition WsfObjectTypeListBase.hpp:69
~WsfObjectTypeListFwd() override
Definition WsfObjectTypeListBase.hpp:65
void CompleteLoad() override
Definition WsfObjectTypeListBase.hpp:71
T * Clone(WsfStringId aId) const override
Definition WsfObjectTypeListBase.hpp:73
WsfObjectTypeListBaseI * mActualTypeListPtr
Definition WsfObjectTypeListBase.hpp:84
void GetTypeIds(TypeIdList &aListOfIds) const override
Definition WsfObjectTypeListBase.hpp:79
WsfObjectTypeList< T > * TypeList()
Definition WsfObjectTypeListBase.hpp:82
const std::string & GetBlockName() const override
Definition WsfObjectTypeListBase.hpp:77
T * Find(WsfStringId aId) const override
Definition WsfObjectTypeListBase.hpp:75
WsfObjectTypeListFwd(WsfObjectTypeListBaseI *aActualTypeListPtr)
Definition WsfObjectTypeListBase.hpp:60
Definition WsfObjectTypeList.hpp:42
Definition WsfObject.hpp:40
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfObjectTypeList.cpp:149