VR-Forces 4.0.4 Class Documentation
include/vrfutil/rwRegistry.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: rwRegistry.h,v $ $Revision: 1.16 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00017 
00018 
00019 #ifndef DtReaderWriterRegistry_H_
00020 #define DtReaderWriterRegistry_H_
00021 
00022 #include <vlutil/vlList.h>
00023 #include <vlutil/vlString.h>
00024 #include "stdio.h"
00025 #include <mtl/mtl.h>
00026 #include "tdbutil/symStr.h"
00027 #include <vector>
00028 #include "vrfutil/vrfutilDefines.h"
00029 #include <list>
00030 
00031 class DtReaderWriter;
00032 class DtReaderWriterRegistryData;
00033 class DtFilename;
00034 class DtFilename;
00035 class DtRwVariableBindings;
00036 
00037 typedef std::list<const DtRwVariableBindings*> DtVariableBindingsList;
00038 
00039 class DT_DLL_vrfutil DtReaderWriterRegistry
00040 {
00041 
00042 public:
00044    DtReaderWriterRegistry();
00045 
00047    DtReaderWriterRegistry(const DtReaderWriterRegistry & orig);
00048 
00050    DtReaderWriterRegistry & operator =(const DtReaderWriterRegistry & orig);
00051 
00053    ~DtReaderWriterRegistry();
00054 
00059    bool localData() const;
00060    void setLocalData();
00061    void clearLocalData();
00062 
00065    void addEntry(const DtSymbolString& keyword, DtReaderWriter* const rw);
00066 
00067    void addEntryBefore(const DtSymbolString& keyword, 
00068       DtReaderWriter* const rw, const DtString& addBefore);
00069 
00070    void addEntryBefore(const DtSymbolString& keyword, 
00071       DtReaderWriter* const rw, DtReaderWriter* const addBefore);
00072 
00073    void addEntryAfter(const DtSymbolString& keyword, 
00074       DtReaderWriter* const rw, const DtString& addAfter);
00075 
00076    void addEntryAfter(const DtSymbolString& keyword, 
00077       DtReaderWriter* const rw, DtReaderWriter* const addAfter);
00078 
00080    void removeEntry(const DtSymbolString& keyword);
00081    void removeEntry(DtReaderWriter* const rw);
00082 
00084    DtReaderWriter* const readerWriter(const DtString& keyword);
00085 
00086    void putSelf(FILE* fp, int indentLevel, bool writeUnspecified, 
00087       const DtFilename& path);
00088    void getSelf(DtlObjPtr args, const DtFilename& searchPath,
00089       const DtVariableBindingsList& variableBindings);
00090 
00098    virtual void setValueSpecified(bool specified, bool recurse);
00099 
00100    const std::vector<DtReaderWriterRegistryData*>& registryData() const;
00101    std::vector<DtReaderWriterRegistryData*>& registryData();
00102 
00104    virtual DtReaderWriterRegistryData* find(const DtString& keyword) const;
00105 
00107    virtual void clear();
00108 
00109    virtual DtRwVariableBindings* variableBindings();
00110    virtual const DtRwVariableBindings* variableBindings() const;
00111    
00112    virtual const DtReaderWriter* findVariableBinding(const DtString& rwType,
00113       const DtString& variableName) const;
00114    virtual DtReaderWriter* findVariableBinding(const DtString& rwType,
00115       const DtString& variableName);
00116 
00120    virtual void setVariableBindings(const DtRwVariableBindings* newBindings);
00121 
00128    virtual DtReaderWriter* addVariableBinding(const DtString& variableType,
00129       const DtString& variableName);
00130 
00131    static const DtString theVariableBindingsName;
00132 
00133 protected:
00134 
00137 
00138 protected:
00139 
00140    std::vector<DtReaderWriterRegistryData*> myData;
00141    bool myLocalDataFlag;
00142    DtRwVariableBindings* myVariableBindings;
00143 
00144 };
00145 
00146 inline const std::vector<DtReaderWriterRegistryData*>& DtReaderWriterRegistry::registryData() const
00147 {
00148    return myData;
00149 }
00150 
00151 inline std::vector<DtReaderWriterRegistryData*>& DtReaderWriterRegistry::registryData()
00152 {
00153    return myData;
00154 }
00155 
00156 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)