VR-Forces 4.1 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 
76 {
77 public:
78 
79  typedef std::vector<DtSymbolString> aliasContainer;
80  typedef std::vector<DtSymbolString>::iterator aliasIter;
81  typedef std::vector<DtSymbolString>::const_iterator aliasConstIter;
82 
85 
90  parentRegistry = NULL, bool readonly = false);
92  parentRegistry = NULL, bool readonly = false);
93 
95  DtReaderWriter(const DtString& name, const DtReaderWriter& orig,
96  DtReaderWriterRegistry* parentRegistry = NULL);
97  DtReaderWriter(const DtSymbolString& name, const DtReaderWriter& orig,
98  DtReaderWriterRegistry* parentRegistry = NULL);
99 
101  const DtReaderWriter& operator=(const DtReaderWriter& orig);
102 
104  virtual ~DtReaderWriter();
105 
113  virtual void putSelf(FILE* fp, int indentLevel = 0,
114  bool writeUnspecified = false, const DtFilename& path =
115  DtFilename::nullFilename());
116 
122  virtual void getSelf(DtlObjPtr args,
123  const DtFilename& searchPath = DtFilename::nullFilename(),
124  const DtVariableBindingsList& variableBindings = nullVariableReference());
125 
128  virtual void writeSelf(FILE* fp, int indentLevel = 0,
129  bool writeUnspecified = false,
130  const DtFilename& path = DtFilename::nullFilename());
131 
133  virtual DtSymbolString name() const;
134 
135  static void putIndent(FILE* fp, int indentLevel);
136 
139  static const DtVariableBindingsList& nullVariableReference();
140 
156 
157  virtual void setValueSpecified(bool specified, bool recurse = false);
158  virtual bool valueSpecified() const;
160 
162  virtual void addAlias(const DtSymbolString& alias);
163 
165  virtual bool hasAlias(const DtSymbolString& alias);
166 
168  virtual const aliasContainer& aliases() const;
169 
171  virtual void setReadonly(bool flag);
172 
174  virtual bool isReadonly() const;
175 
178 
179  virtual bool isVariableReference() const;
182  virtual void setIsVariableReference(bool value);
184 
189 
190  virtual DtSymbolString variableName() const;
191  virtual void setVariableName(const DtSymbolString variableName);
193 
198  virtual bool variableIsBound() const;
202  virtual void unbindVariable();
203 
204  static void setPostGetSelfCallback(DtGetSelfCallbackFcn fcn, void* usrData);
205 
206  static void setPrePutSelfCallback(DtPutSelfCallbackFcn fcn, void* usrData);
207 
209 
210  const DtReaderWriterRegistry& registry() const;
211  DtReaderWriterRegistry& registry();
213 
222  virtual void setName(const DtString&);
223 
227  virtual const char* readerWriterType() const;
228 
231  virtual DtString prettyPrint() const;
232 
242  virtual void bindVariables(DtVariableBindingsList variableBindings);
243 
244  typedef std::pair<DtSymbolString, DtString> DtVariableNameType;
248  virtual std::list<DtVariableNameType> unboundVariables() const;
249 
254  static const DtFilename& appPath();
255 
256  bool invalid() const;
257 
259  virtual bool hasChild(const DtReaderWriter* p) const;
260 
264  static DtReaderWriterFactory* factory();
265 
266 protected:
270  virtual void bindToRwAsVariable(const DtReaderWriter* rw);
271 
275  virtual void bindLocalVariables(const DtVariableBindingsList& variableBindings);
276 
278 
279  virtual void putData(FILE *fp, int indentLevel = 0);
280  virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
281  const DtVariableBindingsList& variableBindings);
283 
284 protected:
285 
293 
296 
298 
302 
304 
306  bool myInvalid;
307 };
308 
310 {
311  return myRegistry;
312 }
313 
315 {
316  return myRegistry;
317 }
318 
319 inline bool DtReaderWriter::invalid() const
320 {
321  return myInvalid;
322 }
323 

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)