![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: remoteConfigurationList.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef DtRemoteConfigurationList_H_ 00010 #define DtRemoteConfigurationList_H_ 00011 00014 00016 #include "vrfutil/rdrWritr.h" 00017 00018 #include <map> 00019 00020 #include "vrfutil/remoteConfigurationEntry.h" 00021 00023 #include "vrfutil/vrfutilDefines.h" 00024 class DT_DLL_vrfutil DtRemoteConfigurationList : public DtReaderWriter 00025 { 00026 public: 00027 00028 typedef DtRemoteConfigurationList* (*CreatorFcn)(const DtString& name, 00029 DtReaderWriterRegistry* parentRegistry); 00030 00033 typedef std::map< std::string, DtRemoteConfigurationEntry* > ConfigMap; 00034 typedef ConfigMap::iterator ConfigIterator; 00035 typedef ConfigMap::const_iterator const_ConfigIterator; 00037 00038 public: 00040 DtRemoteConfigurationList(); 00041 00043 DtRemoteConfigurationList(const DtString& name, 00044 DtReaderWriterRegistry* parentRegistry = NULL, 00045 bool readonly = false); 00046 00048 DtRemoteConfigurationList(const DtSymbolString& name, 00049 DtReaderWriterRegistry* parentRegistry = NULL, 00050 bool readonly = false); 00051 00053 DtRemoteConfigurationList(const DtString& name, 00054 const DtRemoteConfigurationList& orig, 00055 DtReaderWriterRegistry* parentRegistry = NULL); 00056 00058 DtRemoteConfigurationList(const DtSymbolString& name, 00059 const DtRemoteConfigurationList& orig, 00060 DtReaderWriterRegistry* parentRegistry = NULL); 00061 00063 virtual ~DtRemoteConfigurationList(); 00064 00065 public: 00067 const DtRemoteConfigurationList& operator=(const DtRemoteConfigurationList& orig); 00068 00070 const DtRemoteConfigurationList& operator+=(const DtRemoteConfigurationList& orig); 00071 00072 public: 00073 00080 virtual void add(DtRemoteConfigurationEntry* pEntry); 00081 00084 DtRemoteConfigurationList::ConfigIterator begin(); 00085 DtRemoteConfigurationList::const_ConfigIterator begin() const; 00087 00089 virtual void append(const DtRemoteConfigurationList& orig); 00090 00092 virtual bool appendFile(const DtFilename& fname, const DtFilename& searchPath, 00093 const DtVariableBindingsList& variableBindings); 00094 00096 virtual void clear(); 00097 00100 DtRemoteConfigurationList::ConfigMap& configurationMap(); 00101 const DtRemoteConfigurationList::ConfigMap& configurationMap() const; 00103 00105 unsigned size() const; 00106 00108 virtual void copyMap(const DtRemoteConfigurationList& orig); 00109 00112 DtRemoteConfigurationEntry::CreatorFcn entryCreatorFcn() const; 00113 void setEntryCreatorFcn(DtRemoteConfigurationEntry::CreatorFcn fcn); 00115 00118 DtRemoteConfigurationList::ConfigIterator end(); 00119 DtRemoteConfigurationList::const_ConfigIterator end() const; 00121 00123 virtual bool readFile(const DtFilename& fname, const DtFilename& searchPath, 00124 const DtVariableBindingsList& variableBindings); 00125 00128 virtual void remove(DtRemoteConfigurationEntry *pEntry); 00129 virtual void remove(const char *pKeyName); 00131 00132 public: 00133 00134 static DtRemoteConfigurationList* create(const DtString& name, 00135 DtReaderWriterRegistry* parentRegistry); 00136 00137 protected: 00138 00140 virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath, 00141 const DtVariableBindingsList& variableBindings); 00142 00144 virtual void putData(FILE *fp, int indentLevel = 0); 00145 00146 protected: 00147 00148 ConfigMap myConfigMap; 00149 DtRemoteConfigurationEntry::CreatorFcn myEntryCreatorFcn; 00150 }; 00151 00152 inline DtRemoteConfigurationList::ConfigIterator DtRemoteConfigurationList::begin() {return (myConfigMap.begin());} 00153 inline DtRemoteConfigurationList::const_ConfigIterator DtRemoteConfigurationList::begin() const {return (myConfigMap.begin());} 00154 00155 inline DtRemoteConfigurationList::ConfigMap& DtRemoteConfigurationList::configurationMap() {return (myConfigMap);} 00156 inline const DtRemoteConfigurationList::ConfigMap& DtRemoteConfigurationList::configurationMap() const {return (myConfigMap);} 00157 00158 inline unsigned DtRemoteConfigurationList::size() const {return (myConfigMap.size());} 00159 00160 inline DtRemoteConfigurationEntry::CreatorFcn DtRemoteConfigurationList::entryCreatorFcn() const {return (myEntryCreatorFcn);} 00161 inline void DtRemoteConfigurationList::setEntryCreatorFcn(DtRemoteConfigurationEntry::CreatorFcn fcn) {myEntryCreatorFcn = fcn;} 00162 00163 inline DtRemoteConfigurationList::ConfigIterator DtRemoteConfigurationList::end() {return (myConfigMap.end());} 00164 inline DtRemoteConfigurationList::const_ConfigIterator DtRemoteConfigurationList::end() const {return (myConfigMap.end());} 00165 00166 #endif /* DtRemoteConfigurationList_H_ */