VR-Forces 4.0.4 Class Documentation
include/vrfobjparam/mtlParamDb.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: mtlParamDb.h,v $ $Revision: 1.22 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 #ifndef DtMtlParameterDb_H_
00015 #define DtMtlParameterDb_H_
00016 
00017 #include "vrfobjparam/vrfParamDb.h"
00018 #include <vlutil/vlFilename.h>
00019 #include <map>
00020 #include <string>
00021 #include "vrfutil/rwRegistry.h"
00022 #include "vrfutil/rwVariableBindings.h"
00023 #include <vrfutil/remoteConfigurationList.h>
00024 
00025 class DtMtlParameterDbReader;
00026 class DtMtlParameterDbWriter;
00027 class DtMtlParameterDbEntry;
00028 
00031 typedef enum
00032 {
00033    PARAMETER_DB_100_VERSION = 100,
00034    PARAMETER_DB_101_VERSION = 101
00035 } DtParameterDatabaseFileVersionNumber;
00036 
00038 static const DtParameterDatabaseFileVersionNumber 
00039 CURRENT_PARAMETER_DB_FILE_FORMAT_VERSION = PARAMETER_DB_101_VERSION;
00040 
00044 #include "vrfobjparam/vrfobjparamDefines.h"
00045 class DT_DLL_vrfobjparam DtMtlParameterDb : public DtVrfParameterDb
00046 {
00047 public:
00048 
00050    DtMtlParameterDb();
00051 
00053    virtual ~DtMtlParameterDb();
00054 
00057    virtual bool init();
00058 
00065    virtual DtMtlParameterDbEntry* add(const DtObjectType& objectType,
00066       const DtFilename& filename, DtVrfObjectParameters * newParameters = NULL);
00067 
00070    virtual void createRemoteConfigurationList();
00078    virtual DtVrfObjectParameters * lookup(
00079       const DtObjectType & objectType, DtObjectType * matchingType,
00080       DtString* source = NULL) const;
00081 
00083    virtual bool load(const DtFilename& filename);
00084    
00086    virtual bool loadAll(const DtFilename& filename);
00088    DtRemoteConfigurationList* remoteConfigurationList();
00089    const DtRemoteConfigurationList* remoteConfigurationList() const;
00090    DtRemoteConfigurationList::CreatorFcn remoteConfigurationListCreatorFcn();
00091    void setRemoteConfigurationListCreatorFcn(DtRemoteConfigurationList::CreatorFcn fcn);
00092 
00099    virtual bool save(const DtFilename& filename);
00100 
00102    virtual void removeAll();
00103 
00108    virtual void setVersionNumber(int versionNumber);
00109    virtual int versionNumber() const;
00110 
00115    virtual void addDependentParameterFileToCopyPair(
00116       const DtFilename& fromFilename, const DtFilename& toFilename);
00117    virtual void clearDependentParameterFileToCopyPairs();
00118    virtual const std::map<std::string, std::string>& 
00119       dependentParameterFileToCopyPairs() const;
00120 
00125    virtual void updateReaderWriterFilePaths(DtVrfObjectParameters& parameters);
00126 
00127    DtMtlParameterDbReader* dbReader();
00128    DtMtlParameterDbWriter* dbWriter();
00129 
00132    virtual DtFilename stripExtension(const DtFilename& filename, 
00133       const DtString& extension);
00134 
00136    //const DtFilename& filename() const;
00137 
00139 
00140    virtual void addVariableBindings(DtVariableBindingsSharedPtr bindings);
00141    virtual std::list<DtVariableBindingsSharedPtr>& variableBindings();
00143 
00144 public:
00145 
00147    static DtVrfParameterDb* create();
00148 
00150    static const DtString& opdFilenameExtension();
00151 
00154    static const DtString& opeFilenameExtension();
00155 
00156 protected:
00157 
00160    virtual DtMtlParameterDbReader* createParamDbReader();
00161 
00164    virtual DtMtlParameterDbWriter* createMtlParamDbWriter();
00165 
00168    virtual bool copyDependentParameterDirectories(const DtFilename& oldPath,
00169       const DtFilename& newPath);
00170 
00172    virtual DtFilename getPath(const DtFilename& filename);
00173 
00179    virtual DtVrfObjectParameters* getParameters(
00180       DtMtlParameterDbEntry* entry) const;
00181 
00183    virtual DtVrfParameterDbEntry* createParameterEntry() const;
00184 
00190    static const std::map<DtString, DtFilename>& extensionToPathMap();
00191 
00192 private:
00194    DtMtlParameterDb(const DtMtlParameterDb& orig);
00195 
00197    DtMtlParameterDb& operator=(const DtMtlParameterDb& orig);
00198 
00199 protected:
00200 
00201    DtMtlParameterDbReader* myParameterDbReader;
00202    DtMtlParameterDbWriter* myParameterDbWriter;
00203 
00204    static DtString theOpdFilenameExtension;
00205    static DtString theOpeFilenameExtension;
00206    static DtFilename theOldParameterDbDirectory;
00207 
00208    int myVersionNumber;
00209 
00210    DtVariableBindingsList myVariableBindings;
00211    //DtFilename myFilename;
00212    std::map<std::string, std::string> myDependentParameterFileToCopyPairs;
00213 
00216    std::list<DtVariableBindingsSharedPtr> myVariableBindingsList;
00217 
00219    DtRemoteConfigurationList  *pMyRemoteConfigurationList;
00220    DtRemoteConfigurationList::CreatorFcn myRemoteConfigListCreatorFcn;
00221 protected:
00222 
00223    static std::map<DtString, DtFilename>* theExtensionToPathMap;
00224 };
00225 
00226 inline DtMtlParameterDbReader* DtMtlParameterDb::dbReader()
00227 {
00228    return myParameterDbReader;
00229 }
00230 
00231 inline DtMtlParameterDbWriter* DtMtlParameterDb::dbWriter()
00232 {
00233    return myParameterDbWriter;
00234 }
00235 
00236 /*
00237 inline const DtFilename& DtMtlParameterDb::filename() const
00238 {
00239    return myFilename;
00240 }
00241 */
00242 
00243 inline DtRemoteConfigurationList* DtMtlParameterDb::remoteConfigurationList() {return (pMyRemoteConfigurationList);}
00244 inline const DtRemoteConfigurationList* DtMtlParameterDb::remoteConfigurationList() const {return (pMyRemoteConfigurationList);}
00245 inline DtRemoteConfigurationList::CreatorFcn DtMtlParameterDb::remoteConfigurationListCreatorFcn(){return (myRemoteConfigListCreatorFcn);}
00246 inline void DtMtlParameterDb::setRemoteConfigurationListCreatorFcn(DtRemoteConfigurationList::CreatorFcn fcn){myRemoteConfigListCreatorFcn = fcn;}
00247 #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)