VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
mtlParameterDb.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
13 
14 #include <vlutil/vlFilename.h>
15 #include <tbb/queuing_mutex.h>
16 
17 #include <map>
18 #include <string>
19 
23 
26 typedef enum
27 {
31 
35 
41 {
42 public:
43 
46 
48  virtual ~DtMtlParameterDb() override;
49 
52  virtual bool init() override;
53 
62  virtual DtMtlParameterDbEntry* add(const DtEntityType& objectType,
63  const DtFilename& filename, bool typeIsMatchType, DtVrfObjectParameters * newParameters = NULL);
64 
67  virtual void createRemoteConfigurationList();
75  virtual DtVrfObjectParameters * lookup(
76  const DtEntityType& objectType, DtEntityType* matchingType, DtString* source = NULL) const override;
77 
81  virtual bool load(const DtFilename& filename, bool preloadParameters = false) override;
82 
84  virtual bool loadAll(const DtFilename& filename);
86  DtRemoteConfigurationList* remoteConfigurationList();
87  const DtRemoteConfigurationList* remoteConfigurationList() const;
88  DtRemoteConfigurationList::CreatorFcn remoteConfigurationListCreatorFcn();
89  void setRemoteConfigurationListCreatorFcn(DtRemoteConfigurationList::CreatorFcn fcn);
90 
97  virtual bool save(const DtFilename& filename) override;
98 
100  virtual void removeAll() override;
101 
106  virtual void setVersionNumber(int versionNumber);
107  virtual int versionNumber() const;
108 
113  virtual void addDependentParameterFileToCopyPair(
114  const DtFilename& fromFilename, const DtFilename& toFilename);
115  virtual void clearDependentParameterFileToCopyPairs();
116  virtual std::map<std::string, std::string> dependentParameterFileToCopyPairs() const;
117 
122  virtual void updateReaderWriterFilePaths(DtVrfObjectParameters& parameters);
123 
124  DtMtlParameterDbReader* dbReader();
125  DtMtlParameterDbWriter* dbWriter();
126 
129  virtual DtFilename stripExtension(const DtFilename& filename,
130  const DtString& extension);
131 
133  //const DtFilename& filename() const;
134 
136 
137  virtual void addVariableBindings(DtVariableBindingsSharedPtr bindings);
138  virtual std::list<DtVariableBindingsSharedPtr>& variableBindings();
140 
141 public:
142 
144  static DtVrfParameterDb* create();
145 
147  static const DtString& opdFilenameExtension();
148 
151  static const DtString& opeFilenameExtension();
152 
154  virtual void setReader(DtMtlParameterDbReader*);
155 
157  virtual void setWriter(DtMtlParameterDbWriter*);
158 
160 
161  virtual DtReaderWriter::SearchPaths searchPaths() const;
162  virtual void setSearchPaths(const DtReaderWriter::SearchPaths& searchPaths);
164 
170  virtual DtVrfObjectParameters* getParameters(
171  DtMtlParameterDbEntry* entry) const;
172 
173 protected:
174 
177  virtual DtMtlParameterDbReader* createParamDbReader();
178 
181  virtual DtMtlParameterDbWriter* createMtlParamDbWriter();
182 
185  virtual bool copyDependentParameterDirectories(const DtFilename& oldPath,
186  const DtFilename& newPath);
187 
189  virtual DtFilename getPath(const DtFilename& filename);
190 
192  virtual DtVrfParameterDbEntry* createParameterEntry() const override;
193 
199  static const std::map<DtString, DtFilename>& extensionToPathMap();
200 
201 private:
203  DtMtlParameterDb(const DtMtlParameterDb& orig);
204 
207 
208 protected:
209 
212 
215  static DtFilename theOldParameterDbDirectory;
216 
218 
220  //DtFilename myFilename;
221  std::map<std::string, std::string> myDependentParameterFileToCopyPairs;
222 
225  std::list<DtVariableBindingsSharedPtr> myVariableBindingsList;
226 
230 
233 
234  mutable tbb::queuing_mutex myMutex;
235 
236 protected:
237 
238  static std::map<DtString, DtFilename>* theExtensionToPathMap;
239 };
240 
242 {
243  return myParameterDbReader;
244 }
245 
247 {
248  return myParameterDbWriter;
249 }
250 
251 /*
252 inline const DtFilename& DtMtlParameterDb::filename() const
253 {
254  return myFilename;
255 }
256 */
257 
static std::map< DtString, DtFilename > * theExtensionToPathMap
Definition: mtlParameterDb.h:238
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:64
DtVrfParameterDb & operator=(const DtVrfParameterDb &orig)
assignment operator - not implemented
DtVariableBindingsList myVariableBindings
Definition: mtlParameterDb.h:219
virtual DtVrfParameterDbEntry * add(const DtEntityType &objectType, DtVrfObjectParameters *parameters)
Add a new parameter entry to database. It will replace the current entry for the given object type...
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:41
DtMtlParameterDbReader * myParameterDbReader
Definition: mtlParameterDb.h:210
DtRemoteConfigurationList * pMyRemoteConfigurationList
List of DtRemoteConfigurationEntry* objects.
Definition: mtlParameterDb.h:228
#define DT_DLL_vrfobjparam
This file is used to determine how to build.
Definition: vrfobjparamDefines.h:28
std::shared_ptr< DtRwVariableBindings > DtVariableBindingsSharedPtr
Definition: rwVariableBindings.h:152
DtRemoteConfigurationList *(* CreatorFcn)(const DtString &name, DtReaderWriterRegistry *parentRegistry)
Definition: remoteConfigurationList.h:24
static const DtParameterDatabaseFileVersionNumber CURRENT_PARAMETER_DB_FILE_FORMAT_VERSION
Current version number of the parameter database.
Definition: mtlParameterDb.h:34
DtParameterDatabaseFileVersionNumber
Parameter database file version number: 100: initial version.
Definition: mtlParameterDb.h:26
virtual bool save(const DtFilename &filename)
Save current contents of the parameter database to file.
Definition: vrfParameterDb.h:125
tbb::queuing_mutex myMutex
Definition: mtlParameterDb.h:234
DtMtlParameterDbEntry; record in a DtMtlParameterDb.
Definition: mtlParameterDbEntry.h:27
virtual bool init()
initialization - must be called before any other public member functions are called.
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
static DtString theOpeFilenameExtension
Definition: mtlParameterDb.h:214
Definition: mtlParameterDb.h:28
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
Definition: vrfParameterDbEntry.h:22
class DtMtlParameterDbWriter:
Definition: mtlParameterDbWriter.h:31
const char * source
Definition: lz4.h:442
std::list< DtVariableBindingsSharedPtr > myVariableBindingsList
List of all top level variable bindings for each OPD file read in. Additional OPD files read will add...
Definition: mtlParameterDb.h:225
DtRemoteConfigurationList::CreatorFcn remoteConfigurationListCreatorFcn()
Definition: mtlParameterDb.h:260
DtRemoteConfigurationList::CreatorFcn myRemoteConfigListCreatorFcn
Definition: mtlParameterDb.h:229
Instances of DtMtlParameterDb are a database of DtVrfObjectParameters* entries that are loaded from a...
Definition: mtlParameterDb.h:40
Definition: mtlParameterDb.h:29
int myVersionNumber
Definition: mtlParameterDb.h:217
static DtString theOpdFilenameExtension
Definition: mtlParameterDb.h:213
class DtMtlParameterDbReader:
Definition: mtlParameterDbReader.h:26
virtual DtVrfParameterDbEntry * createParameterEntry() const
Creates a new type of parameter entry. Override to create your own derived type.
static DtVrfParameterDb * create()
Returns a new instance of this class.
virtual bool load(const DtFilename &filename, bool preloadParameters=false)
Load the contents of a file into the parameter database. If the preloadParameters value is true will ...
Definition: vrfParameterDb.h:122
DtMtlParameterDbReader * dbReader()
Definition: mtlParameterDb.h:241
void setRemoteConfigurationListCreatorFcn(DtRemoteConfigurationList::CreatorFcn fcn)
Definition: mtlParameterDb.h:261
DtMtlParameterDbWriter * dbWriter()
Definition: mtlParameterDb.h:246
DtReaderWriter::SearchPaths mySearchPaths
List of additional search paths from included SMSs.
Definition: mtlParameterDb.h:232
virtual void removeAll()
Remove all entries in the parameter database. Deletes memory associated with entries in the database...
virtual DtVrfObjectParameters * lookup(const DtEntityType &objectType, DtEntityType *matchingType=NULL, DtString *source=NULL) const
Lookup entry in parameter database that most closely matches given objectType. If matchingType is spe...
static DtFilename theOldParameterDbDirectory
Definition: mtlParameterDb.h:215
This file declares DtComponentAttachmentConfigurationEntry.
Definition: remoteConfigurationList.h:20
DtRemoteConfigurationList * remoteConfigurationList()
Definition: mtlParameterDb.h:258
std::map< std::string, std::string > myDependentParameterFileToCopyPairs
Definition: mtlParameterDb.h:221
DtMtlParameterDbWriter * myParameterDbWriter
Definition: mtlParameterDb.h:211

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)