VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfProcessStateRepositoryManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2005 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: procSRMgr.h,v $ $Revision: 1.9 $ $State: Exp $
7 *******************************************************************************/
8 
11 
17 
18 #ifndef DtVrfProcessStateRepositoryManager_H_
19 #define DtVrfProcessStateRepositoryManager_H_
20 
21 #include <vlutil/vlHashlist.h>
22 #include <readerWriter/rwList.h>
24 #include <list>
25 #include <set>
26 
28 class DtString;
32 
37  DtVrfProcessStateRepository* procStateRep, void* usr);
38 
45 
48 {
49 
50 public:
51 
54 
57  DtReaderWriterRegistry* parentRegistry = 0);
58 
61 
65  DtReaderWriterRegistry* parentRegistry = 0);
66 
70 
72  const DtString& name, DtReaderWriterRegistry* parentRegistry = 0);
73 
77  virtual void addProcessStateRepository(
78  DtVrfProcessStateRepository* repToAdd);
79 
82  virtual void addCompatibilityProcessStateRepository(DtVrfProcessStateRepository* repToAdd,
83  const DtString& psrName);
84 
87  virtual void removeProcessStateRepository(
88  DtVrfProcessStateRepository* repToRemove);
89 
91  virtual void removeCompatibilityProcessStateRepository(DtVrfProcessStateRepository* repToRemove,
92  const DtString& psrName);
93 
97  virtual DtVrfProcessStateRepository* lookupProcessStateRepository(
98  const DtString& procRepName, bool recurse = true) const;
99 
101 
105  const DtVrfProcessStateRepositoryIterator& iterator() const;
106 
109  virtual void completePSRList(std::list<DtVrfProcessStateRepository*>& psrList) const;
110 
112 
115  virtual void addProcessStateRepositoryAddedCallback(
116  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
117 
120  virtual void removeProcessStateRepositoryAddedCallback(
121  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
122 
124  virtual void invokeProcessStateRepositoryAddedCallbacks(
125  DtVrfProcessStateRepository* repBeingRemove) const;
126 
127 
130  virtual void addProcessStateRepositoryAboutToBeRemovedCallback(
131  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
132 
135  virtual void removeProcessStateRepositoryAboutToBeRemovedCallback(
136  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
137 
139  virtual void invokeProcessStateRepositoryAboutToBeRemovedCallbacks(
140  DtVrfProcessStateRepository* repBeingRemove) const;
141 
143  virtual void putSelf(std::string& fp, int indentLevel = 0,
144  bool writeUnspecified = false, const DtFilename& path =
145  DtFilename::nullFilename());
146 
147 protected:
148 
151  void emptyList();
152  void copyList(const DtVrfProcessStateRepositoryManager& origList);
153 
154  void emptyCallbackList(DtList& listToEmpty);
155  void copyCallbackList(DtList& destList, const DtList& origList);
156 
160  virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths& searchPaths,
161  const DtVariableBindingsList& variableBindings);
162 
163  virtual DtListItem* lookupProcessStateRepositoryItem(
164  const DtString& repositoryName);
165 
166  virtual void addProcessStateRepositoryAddedCallback(
168 
169  virtual void removeProcessStateRepositoryAddedCallback(
170  const DtVrfProcessStateManagerCallbackInfo & cbInfo);
171 
172  virtual void addProcessStateRepositoryAboutToBeRemovedCallback(
174 
175  virtual void removeProcessStateRepositoryAboutToBeRemovedCallback(
176  const DtVrfProcessStateManagerCallbackInfo & cbInfo);
177 
179  virtual bool isCompatiblePsr(DtVrfProcessStateRepository* psr) const;
180 
181 protected:
182 
183  DtHashlist myHashIndex;
187 
188  typedef std::pair<DtString, DtVrfProcessStateRepository*> CompatibilityPsrInfo ;
189  std::list<CompatibilityPsrInfo> myCompatibilityPsrs;
190 };
191 
196 template <typename T_PSRType>
197 T_PSRType* findPsrByNameAndType(const DtString& psrName,
198  const std::list<DtVrfProcessStateRepository*>& psrList);
199 
201 template<typename T_PSRType>
202 T_PSRType* findPsrByNameAndType(const DtString& psrName,
203  const std::list<DtVrfProcessStateRepository*>& psrList)
204 {
205  std::list<DtVrfProcessStateRepository*>::const_iterator itr = psrList.begin();
206  std::list<DtVrfProcessStateRepository*>::const_iterator end = psrList.end();
207  for(; itr != end; ++itr)
208  {
209  if ((*itr)->name() == psrName)
210  {
211  if (T_PSRType* psr = dynamic_cast<T_PSRType*>(*itr))
212  {
213  return psr;
214  }
215  }
216  }
217  return 0;
218 }
219 
220 #endif
221 
DtList myAboutToBeRemovedProcessStateRepositoryCallbackList
Definition: vrfProcessStateRepositoryManager.h:184
Iterator for iterating over a DtList of process state repositories.
Definition: vrfProcessStateRepositoryIterator.h:32
A Readable, Writable version of DtList.
Definition: rwList.h:26
class DtVrfProcessStateManagerCallbackInfo:
Definition: vrfProcessStateManagerCallbackInfo.h:26
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)=0
This method must be overridden by a subclass.
Definition: readerWriterRegistry.h:39
class DtVrfProcessStateRepositoryManager:
Definition: vrfProcessStateRepositoryManager.h:47
DtList myAddedProcessStateRepositoryCallbackList
Definition: vrfProcessStateRepositoryManager.h:185
DtHashlist myHashIndex
Definition: vrfProcessStateRepositoryManager.h:183
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtVrfProcessStateRepositoryIterator * myIterator
Definition: vrfProcessStateRepositoryManager.h:186
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.
Class DtVrfProcessStateRepository: Abstract base class for all process state repositories.
Definition: vrfProcessStateRepository.h:43
std::list< CompatibilityPsrInfo > myCompatibilityPsrs
Definition: vrfProcessStateRepositoryManager.h:189
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:202
void(* DtVrfProcessStateManagerCallbackFcn)(DtVrfProcessStateRepository *obj, void *userData)
Definition: vrfProcessStateManagerCallbackInfo.h:17
std::pair< DtString, DtVrfProcessStateRepository * > CompatibilityPsrInfo
Definition: vrfProcessStateRepositoryManager.h:188

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)