VR-Forces 4.6 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 "vrfutil/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 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)