VR-Forces 4.1.1 Class Documentation
procSRMgr.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"
23 #include "vrfobjcore/processSR.h"
24 #include <list>
25 
27 class DtString;
31 
36  DtVrfProcessStateRepository* procStateRep, void* usr);
37 
44 
47 {
48 
49 public:
50 
53 
56  DtReaderWriterRegistry* parentRegistry = 0);
57 
60 
64  DtReaderWriterRegistry* parentRegistry = 0);
65 
69 
71  const DtString& name, DtReaderWriterRegistry* parentRegistry = 0);
72 
76  virtual void addProcessStateRepository(
77  DtVrfProcessStateRepository* repToAdd);
78 
81  virtual void removeProcessStateRepository(
82  DtVrfProcessStateRepository* repToRemove);
83 
87  virtual DtVrfProcessStateRepository* lookupProcessStateRepository(
88  const DtString& procRepName) const;
89 
91 
95  const DtVrfProcessStateRepositoryIterator& iterator() const;
96 
99  virtual void completePSRList(std::list<DtVrfProcessStateRepository*>& psrList) const;
100 
102 
105  virtual void addProcessStateRepositoryAddedCallback(
106  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
107 
110  virtual void removeProcessStateRepositoryAddedCallback(
111  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
112 
114  virtual void invokeProcessStateRepositoryAddedCallbacks(
115  DtVrfProcessStateRepository* repBeingRemove) const;
116 
117 
120  virtual void addProcessStateRepositoryAboutToBeRemovedCallback(
121  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
122 
125  virtual void removeProcessStateRepositoryAboutToBeRemovedCallback(
126  DtVrfProcessStateManagerCallbackFcn fcn, void* usrData);
127 
129  virtual void invokeProcessStateRepositoryAboutToBeRemovedCallbacks(
130  DtVrfProcessStateRepository* repBeingRemove) const;
131 
132 protected:
133 
136  void emptyList();
137  void copyList(const DtVrfProcessStateRepositoryManager& origList);
138 
139  void emptyCallbackList(DtList& listToEmpty);
140  void copyCallbackList(DtList& destList, const DtList& origList);
141 
145  virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
146  const DtVariableBindingsList& variableBindings);
147 
148  virtual DtListItem* lookupProcessStateRepositoryItem(
149  const DtString& repositoryName);
150 
151  virtual void addProcessStateRepositoryAddedCallback(
153 
154  virtual void removeProcessStateRepositoryAddedCallback(
155  const DtVrfProcessStateManagerCallbackInfo & cbInfo);
156 
157  virtual void addProcessStateRepositoryAboutToBeRemovedCallback(
159 
160  virtual void removeProcessStateRepositoryAboutToBeRemovedCallback(
161  const DtVrfProcessStateManagerCallbackInfo & cbInfo);
162 
163 protected:
164 
165  DtHashlist myHashIndex;
169 };
170 
175 template <typename T_PSRType>
176 T_PSRType* findPsrByNameAndType(const DtString& psrName,
177  const std::list<DtVrfProcessStateRepository*>& psrList);
178 
180 template<typename T_PSRType>
181 T_PSRType* findPsrByNameAndType(const DtString& psrName,
182  const std::list<DtVrfProcessStateRepository*>& psrList)
183 {
184  std::list<DtVrfProcessStateRepository*>::const_iterator itr = psrList.begin();
185  std::list<DtVrfProcessStateRepository*>::const_iterator end = psrList.end();
186  for(; itr != end; ++itr)
187  {
188  if ((*itr)->name() == psrName)
189  {
190  if (T_PSRType* psr = dynamic_cast<T_PSRType*>(*itr))
191  {
192  return psr;
193  }
194  }
195  }
196  return 0;
197 }
198 
199 #endif
200 

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)