VR-Forces 4.0.4 Class Documentation
include/vrfutil/remoteConfigurationList.h
Go to the documentation of this file.
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_ */

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)