![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: rwMember.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtReaderWriterMember_H_ 00013 #define DtReaderWriterMember_H_ 00014 00015 class DtReaderWriterMember; 00016 00017 #include "stdio.h" 00018 #include <mtl/mtl.h> 00019 #include <vlutil/vlString.h> 00020 #include "vrfutil/rwRegistry.h" 00021 #include "vrfutil/rdrWritr.h" 00022 00024 typedef void (*DtRwPutDataHook)(void* obj, FILE* fp, int indentLevel); 00025 typedef DtlObjPtr (*DtRwGetDataHook)(void* obj, DtlObjPtr args); 00026 00027 00112 //... non-inline functions ... 00169 00170 #include "vrfutil/vrfutilDefines.h" 00171 class DT_DLL_vrfutil DtReaderWriterMember : public DtReaderWriter 00172 { 00173 public: 00174 00176 DtReaderWriterMember(void* parent = NULL); 00177 00179 DtReaderWriterMember(void* parent, 00180 DtRwPutDataHook putHook, DtRwGetDataHook getHook); 00181 00182 DtReaderWriterMember(const DtString& name, 00183 DtReaderWriterRegistry* parentRegistry = NULL); 00184 DtReaderWriterMember(const DtSymbolString& name, 00185 DtReaderWriterRegistry* parentRegistry = NULL); 00186 00187 DtReaderWriterMember(const DtString& name, 00188 void* parent, 00189 DtReaderWriterRegistry* parentRegistry = NULL); 00190 DtReaderWriterMember(const DtSymbolString& name, 00191 void* parent, 00192 DtReaderWriterRegistry* parentRegistry = NULL); 00193 00194 DtReaderWriterMember(const DtString& name, 00195 void* parent, 00196 DtRwPutDataHook putHook, DtRwGetDataHook getHook, 00197 DtReaderWriterRegistry* parentRegistry = NULL); 00198 DtReaderWriterMember(const DtSymbolString& name, 00199 void* parent, 00200 DtRwPutDataHook putHook, DtRwGetDataHook getHook, 00201 DtReaderWriterRegistry* parentRegistry = NULL); 00202 00203 00205 DtReaderWriterMember(const DtString& name, 00206 const DtReaderWriterMember& orig, 00207 void* parent = NULL, 00208 DtReaderWriterRegistry* parentRegistry = NULL); 00209 DtReaderWriterMember(const DtSymbolString& name, 00210 const DtReaderWriterMember& orig, 00211 void* parent = NULL, 00212 DtReaderWriterRegistry* parentRegistry = NULL); 00213 00215 const DtReaderWriterMember& operator=(const DtReaderWriterMember& orig); 00216 00218 virtual ~DtReaderWriterMember(); 00219 00221 //virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false, 00222 //const DtFilename& path = DtReaderWriter::appPath()); 00223 //virtual void getSelf(DtlObjPtr args); 00224 00225 virtual void* parent() const; 00226 virtual void setParent(void* arg); 00227 00228 DtReaderWriterRegistry* registry(); 00229 const DtReaderWriterRegistry* registry() const; 00230 00234 virtual bool localData() const; 00235 virtual void setLocalData(bool value = true); 00236 virtual void clearLocalData(); 00237 00240 virtual void setPutDataHook(DtRwPutDataHook hook); 00241 virtual void setGetDataHook(DtRwGetDataHook hook); 00242 00246 virtual const char* readerWriterType() const; 00247 00248 protected: 00249 00253 virtual void putData(FILE* fp, int indentLevel = 0); 00254 virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath, 00255 const DtVariableBindingsList& variableBindings); 00256 00257 void* myParent; 00258 DtRwPutDataHook myPutDataHook; 00259 DtRwGetDataHook myGetDataHook; 00260 }; 00261 00262 #endif