VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfParameterDb.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 #include <vlutil/vlList.h>
16 #include <list>
17 #include <map>
18 #include <tbb/spin_rw_mutex.h>
19 #include <set>
20 #include <boost/signals2.hpp>
21 
22 class DtEntityType;
25 class DtFilename;
26 class DtString;
27 
42 {
43 public:
44 
47 
49  virtual ~DtVrfParameterDb();
50 
53  virtual bool init();
54 
59  virtual DtVrfParameterDbEntry* add(const DtEntityType& objectType,
60  DtVrfObjectParameters * parameters);
61 
69  virtual DtVrfObjectParameters * lookup(
70  const DtEntityType & objectType,
71  DtEntityType * matchingType = NULL,
72  DtString* source = NULL) const;
73 
85  virtual std::list<const DtVrfObjectParameters*> lookupByEquipmentName(
86  const DtString& equipmentName) const;
87 
95  std::set<DtEntityType> lookupByObjectTypePattern(
96  const DtEntityType & objectTypePattern) const;
97 
105  virtual DtString equipmentName(const DtEntityType& objectType,
106  int& count) const;
107 
110  virtual void remove(const DtEntityType & objectType);
111 
114  virtual void removeAll();
115 
117  virtual const DtList& parameterList() const;
118 
122  virtual bool load(const DtFilename& filename, bool preloadParameters = false) {return true;}
123 
125  virtual bool save(const DtFilename& filename) {return true;}
126 
129  virtual void addParameters(const DtEntityType& objectType,
130  DtVrfObjectParameters * newParameters);
131 
134  virtual DtVrfObjectParameters * lookupParameters(
135  const DtEntityType & objectType, DtEntityType * matchingType) const;
136 
139  virtual void removeParameters(const DtEntityType & objectType);
140 
143  virtual void removeAndDeleteAll();
144 
148  virtual DtVrfParameterDbEntry * lookupParameterDbEntry(
149  const DtEntityType & objectType, DtEntityType * matchingType) const;
150 
152  virtual int numParameterEntries() const;
153 
158  virtual std::list<DtString>* getSysDefExtensionList();
159 
162  virtual void addExtension(DtString);
163 
165  boost::signals2::signal<void (DtVrfObjectParameters*)> signal_parameterLoaded;
166 
167 public:
168 
170  static DtVrfParameterDb* create();
171 
172 protected:
173 
180  virtual void addParameterDbEntry(DtVrfParameterDbEntry * newParameterEntry);
181 
184  virtual DtListItem * lookupParameters(const DtEntityType & objectType) const;
185 
188  void emptyList();
189 
191  virtual DtVrfParameterDbEntry* createParameterEntry() const;
192 
193 private:
195  DtVrfParameterDb(const DtVrfParameterDb& orig);
196 
198  DtVrfParameterDb& operator=(const DtVrfParameterDb& orig);
199 
200 protected:
201 
204 
209  mutable std::map < DtString, std::list<const DtVrfObjectParameters*> > myEquipmentToParamsMap;
210  mutable tbb::spin_rw_mutex myEquipmentToParamsMapMutex;
211 
216  mutable std::map < DtString, std::set<DtEntityType> > myObjTypePatternToParamsMap;
217  mutable tbb::spin_rw_mutex myObjTypePatternToTypesMapMutex;
218 };
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:64
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:41
DtList myParameterList
List of DtVrfParameterDbEntry* objects.
Definition: vrfParameterDb.h:203
#define DT_DLL_vrfobjparam
This file is used to determine how to build.
Definition: vrfobjparamDefines.h:28
tbb::spin_rw_mutex myEquipmentToParamsMapMutex
Definition: vrfParameterDb.h:210
virtual bool save(const DtFilename &filename)
Save current contents of the parameter database to file.
Definition: vrfParameterDb.h:125
Definition: vrfParameterDbEntry.h:22
const char * source
Definition: lz4.h:442
std::map< DtString, std::set< DtEntityType > > myObjTypePatternToParamsMap
A cache of generic object type pattern to specific object type mappings. This is filled in as queries...
Definition: vrfParameterDb.h:216
std::map< DtString, std::list< const DtVrfObjectParameters * > > myEquipmentToParamsMap
A cache of equipment name to db entry list mappings. This is filled in as queries are made with looku...
Definition: vrfParameterDb.h:209
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
tbb::spin_rw_mutex myObjTypePatternToTypesMapMutex
Definition: vrfParameterDb.h:217
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
boost::signals2::signal< void(DtVrfObjectParameters *)> signal_parameterLoaded
Signal sent out when a parameter is loaded.
Definition: vrfParameterDb.h:165

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)