18 #ifndef DtVrfProcessStateRepositoryManager_H_
19 #define DtVrfProcessStateRepositoryManager_H_
21 #include <vlutil/vlHashlist.h>
79 virtual void addProcessStateRepository(
89 virtual void removeProcessStateRepository(
100 const DtString& procRepName,
bool recurse =
true)
const;
111 virtual void completePSRList(std::list<DtVrfProcessStateRepository*>& psrList)
const;
117 virtual void addProcessStateRepositoryAddedCallback(
122 virtual void removeProcessStateRepositoryAddedCallback(
126 virtual void invokeProcessStateRepositoryAddedCallbacks(
132 virtual void addProcessStateRepositoryAboutToBeRemovedCallback(
137 virtual void removeProcessStateRepositoryAboutToBeRemovedCallback(
141 virtual void invokeProcessStateRepositoryAboutToBeRemovedCallbacks(
145 virtual void putSelf(std::string& fp,
int indentLevel = 0,
bool writeUnspecified =
false,
146 const DtFilename& path = DtFilename::nullFilename())
override;
155 void emptyCallbackList(DtList& listToEmpty);
156 void copyCallbackList(DtList& destList,
const DtList& origList);
164 virtual DtListItem* lookupProcessStateRepositoryItem(
167 virtual void addProcessStateRepositoryAddedCallback(
170 virtual void removeProcessStateRepositoryAddedCallback(
173 virtual void addProcessStateRepositoryAboutToBeRemovedCallback(
176 virtual void removeProcessStateRepositoryAboutToBeRemovedCallback(
197 template <
typename T_PSRType>
199 const std::list<DtVrfProcessStateRepository*>& psrList);
202 template<
typename T_PSRType>
204 const std::list<DtVrfProcessStateRepository*>& psrList)
206 std::list<DtVrfProcessStateRepository*>::const_iterator itr = psrList.begin();
207 std::list<DtVrfProcessStateRepository*>::const_iterator end = psrList.end();
208 for(; itr != end; ++itr)
210 if ((*itr)->name() == psrName)
212 if (T_PSRType* psr = dynamic_cast<T_PSRType*>(*itr))
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) override=0
This method must be overridden by a subclass. Within this method, new instances of the DtReaderWriter...
DtList myAboutToBeRemovedProcessStateRepositoryCallbackList
Definition: vrfProcessStateRepositoryManager.h:185
Iterator for iterating over a DtList of process state repositories. Used by DtVrfProcessStateManager...
Definition: vrfProcessStateRepositoryIterator.h:32
A Readable, Writable version of DtList. This class cannot be used directly, but must be inherited to ...
Definition: rwList.h:26
class DtVrfProcessStateManagerCallbackInfo:
Definition: vrfProcessStateManagerCallbackInfo.h:26
Definition: readerWriterRegistry.h:39
class DtVrfProcessStateRepositoryManager:
Definition: vrfProcessStateRepositoryManager.h:49
DtList myAddedProcessStateRepositoryCallbackList
Definition: vrfProcessStateRepositoryManager.h:186
DtHashlist myHashIndex
Definition: vrfProcessStateRepositoryManager.h:184
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtVrfProcessStateRepositoryIterator * myIterator
Definition: vrfProcessStateRepositoryManager.h:187
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file. If write unspecified is true, will write entries that are uns...
Class DtVrfProcessStateRepository: Abstract base class for all process state repositories. Process state repositories represent (potentially) shared, savable information for one or more components functioning together to achieve some process or set of processes; such as aiming and firing a weapon; moving an object; or just waiting a specified amount of time.
Definition: vrfProcessStateRepository.h:45
std::list< CompatibilityPsrInfo > myCompatibilityPsrs
Definition: vrfProcessStateRepositoryManager.h:190
const DtRwList & operator=(const DtRwList &orig)
Calls down to DtReaderWriter::operator=(). List elements are not copied.
T_PSRType * findPsrByNameAndType(const DtString &psrName, const std::list< DtVrfProcessStateRepository * > &psrList)
Templated function which finds the first occurrence of a PSR in the specified psrList that has the sp...
Definition: vrfProcessStateRepositoryManager.h:203
void(* DtVrfProcessStateManagerCallbackFcn)(DtVrfProcessStateRepository *obj, void *userData)
Definition: vrfProcessStateManagerCallbackInfo.h:17
std::pair< DtString, DtVrfProcessStateRepository * > CompatibilityPsrInfo
Definition: vrfProcessStateRepositoryManager.h:189