VR-Forces 4.2 Class Documentation
rdrWritr.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2003 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "stdio.h"
12 #include <mtl/mtl.h>
13 #include <vlutil/vlString.h>
14 #include "vrfutil/rwRegistry.h"
15 #include "vrfutil/putSelfCbInfo.h"
16 #include "vrfutil/getSelfCbInfo.h"
17 #include <vlutil/vlMachineTypes.h>
18 #include "tdbutil/symStr.h"
19 #include <vlutil/vlFilename.h>
20 #include <list>
21 #include "vrfutil/vrfutilDefines.h"
22 
25 
78 {
79 public:
80 
81  typedef std::vector<DtSymbolString> aliasContainer;
82  typedef std::vector<DtSymbolString>::iterator aliasIter;
83  typedef std::vector<DtSymbolString>::const_iterator aliasConstIter;
84 
87 
92  parentRegistry = NULL, bool readonly = false);
93  DtReaderWriter(const DtSymbolString& name, DtReaderWriterRegistry*
94  parentRegistry = NULL, bool readonly = false);
95 
97  DtReaderWriter(const DtString& name, const DtReaderWriter& orig,
98  DtReaderWriterRegistry* parentRegistry = NULL);
99  DtReaderWriter(const DtSymbolString& name, const DtReaderWriter& orig,
100  DtReaderWriterRegistry* parentRegistry = NULL);
101 
103  const DtReaderWriter& operator=(const DtReaderWriter& orig);
104 
106  bool operator==(const DtReaderWriter&) const;
107 
108  bool operator!=(const DtReaderWriter& rhs) { return !(*this == rhs); };
109 
111  virtual ~DtReaderWriter();
112 
120  virtual void putSelf(FILE* fp, int indentLevel = 0,
121  bool writeUnspecified = false, const DtFilename& path =
122  DtFilename::nullFilename());
123 
129  virtual void getSelf(DtlObjPtr args,
130  const DtFilename& searchPath = DtFilename::nullFilename(),
131  const DtVariableBindingsList& variableBindings = nullVariableReference());
132 
135  virtual void writeSelf(FILE* fp, int indentLevel = 0,
136  bool writeUnspecified = false,
137  const DtFilename& path = DtFilename::nullFilename());
138 
140  virtual DtSymbolString name() const;
141 
142  static void putIndent(FILE* fp, int indentLevel);
143 
146  static const DtVariableBindingsList& nullVariableReference();
147 
163 
164  virtual void setValueSpecified(bool specified, bool recurse = false);
165  virtual bool valueSpecified() const;
167 
169  virtual void addAlias(const DtSymbolString& alias);
170 
172  virtual bool hasAlias(const DtSymbolString& alias);
173 
175  virtual const aliasContainer& aliases() const;
176 
178  virtual void setReadonly(bool flag);
179 
181  virtual bool isReadonly() const;
182 
185 
186  virtual bool isVariableReference() const;
189  virtual void setIsVariableReference(bool value);
190 
193  virtual void clearAllVariableReferenceFlags();
194 
196 
201 
202  virtual DtSymbolString variableName() const;
203  virtual void setVariableName(const DtSymbolString variableName);
205 
210  virtual bool variableIsBound() const;
214  virtual void unbindVariable();
215 
216  static void setPostGetSelfCallback(DtGetSelfCallbackFcn fcn, void* usrData);
217 
218  static void setPrePutSelfCallback(DtPutSelfCallbackFcn fcn, void* usrData);
219 
221 
222  const DtReaderWriterRegistry& registry() const;
223  DtReaderWriterRegistry& registry();
225 
234  virtual void setName(const DtString&);
235 
239  virtual const char* readerWriterType() const;
240 
243  virtual DtString prettyPrint() const;
244 
254  virtual void bindVariables(DtVariableBindingsList variableBindings);
255 
256  typedef std::pair<DtSymbolString, DtString> DtVariableNameType;
260  virtual std::list<DtVariableNameType> unboundVariables() const;
261 
266  static const DtFilename& appPath();
267 
268  bool invalid() const;
269 
271  virtual bool hasChild(const DtReaderWriter* p) const;
272 
273  typedef DtReaderWriterFactory* (*DtReaderWriterFactoryCreatorFcn)();
274 
276  static void setFactoryCreatorFunction(DtReaderWriterFactoryCreatorFcn fcn);
277 
278  static void createReaderWriterFactory();
279 
283  static DtReaderWriterFactory* factory();
284 
285 protected:
289  virtual void bindToRwAsVariable(const DtReaderWriter* rw);
290 
294  virtual void bindLocalVariables(const DtVariableBindingsList& variableBindings);
295 
297 
298  virtual void putData(FILE *fp, int indentLevel = 0);
299  virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
300  const DtVariableBindingsList& variableBindings);
302 
303 protected:
304 
305  const DtSymbolString myName;
310  DtSymbolString myVariableName;
312 
315 
317 
321 
322  static bool theCreatorFcnSet;
324  static DtReaderWriterFactoryCreatorFcn theFactoryCreatorFcn;
325 
327  bool myInvalid;
328 };
329 
331 {
332  return myRegistry;
333 }
334 
336 {
337  return myRegistry;
338 }
339 
340 inline bool DtReaderWriter::invalid() const
341 {
342  return myInvalid;
343 }
344 

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)