MAK Data Logger API Documentation for DIS
subscriptionListFile.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef subscriptionListFile_H_
10 #define subscriptionListFile_H_
11 
12 #include "lgrSim.h"
13 #include "virtualConstructor.h"
14 #include <vector>
15 #include <map>
16 #include <vl/region.h>
17 #include <mtl/envValue.h>
18 
19 class DtString;
20 
21 namespace MAKLogger
22 {
27  {
28  public:
29  class DimensionDesc;
30  class ExtentDesc;
31  class AttributeDesc;
32  class RegionDesc;
33  typedef std::set<RegionDesc> RegionDescSet;
34 
35  public:
38 
39 
40  virtual ~DtSubscriptionListFile();
41 
44  virtual bool defaultObjectClassExists() const;
45 
48  virtual bool defaultInteractionClassExists() const;
49 
52  virtual std::set<DtString> objectClasses() const;
53 
56  virtual void setObjectClassList(const std::vector<DtString>& list);
57 
60  virtual std::set<DtString> interactionClasses() const;
61 
64  virtual void setInteractionClassList(const std::vector<DtString>& list);
65 
68  virtual void setRegionDescSet(const DtString& name, const DtSubscriptionListFile::RegionDescSet& desc);
69 
73  virtual bool getRegionDescSet(const DtString& descName, DtSubscriptionListFile::RegionDescSet& regionDesc) const;
74 
77  virtual bool regionDescSetExists(const DtString& descName) const;
78 
84  virtual bool addObject(const DtString& name, const DtString& regionSetName);
85 
88  virtual void removeObject(const DtString& name);
89 
94  virtual bool addInteractionClass(const DtString& className, const DtString& regionSetName);
95 
98  virtual void removeInteractionClass(const DtString& className);
99 
102  virtual const DtString* regionDescSetNameForObjectClass(const DtString& className) const;
103 
106  virtual const DtString* regionDescSetNameForInteractionClass(const DtString& className) const;
107 
110  virtual const DtSubscriptionListFile::RegionDescSet* regionDescSetForObjectClass(const DtString& className,
111  bool ignoreDefaults=false) const;
112 
115  virtual const DtSubscriptionListFile::RegionDescSet* regionDescSetForInteractionClass(const DtString& className, bool ignoreDefaults=false) const;
116 
121  virtual unsigned int getRegionSetForObject(DtExerciseConn* exconn,
122  const DtString& name, DtDDMRegionSet& regionSet, bool cacheRegions=true) const;
123 
128  virtual unsigned int getRegionSetForInteractionClass(DtExerciseConn* exconn,
129  const DtString& className, DtDDMRegionSet& regionSet, bool cacheRegions=true ) const;
130 
132  virtual void clearRegions();
133 
137  virtual bool readFromFile(const DtString& filename);
138 
142  virtual bool writeToFile(const DtString& filename) const;
143 
146  virtual const DtString& defaultRegionSetNameObjectClassKey() const;
147 
150  virtual const DtString& defaultRegionSetNameInteractionClassKey() const;
151 
157  virtual DtSubscriptionListFile diffSubscriptionList(const DtSubscriptionListFile& newsublist,
158  std::set<DtString>& modifiedObjectClasses,
159  std::set<DtString>& modifiedInteractionClasses);
160 
161  protected:
162 
165  virtual const DtString* regionDescSetNameForClassName(
166  const std::map<DtString, DtString>& classNameToDescNameMap, const DtString& defaultName,
167  const DtString& className) const;
168 
171  virtual const DtSubscriptionListFile::RegionDescSet* regionDescSetForClassName(
172  const std::map<DtString, DtString>& classNameToDescNameMap, const DtString& defaultName,
173  const DtString& className, bool ignoreDefaults=false) const;
174 
178  virtual DtDDMRegionSP createRegion(DtExerciseConn* exconn,
179  const DtSubscriptionListFile::RegionDesc& regionDescriptor) const;
180 
185  virtual unsigned int getRegionSet(DtExerciseConn* exconn,
186  const DtSubscriptionListFile::RegionDescSet& regionDescSet, DtDDMRegionSet& regionSet,
187  bool cacheRegions=true) const;
188 
192  virtual bool readRegion(DtEnvironment& env, DtEnvValueSP region, RegionDesc& regionDescriptor);
193 
197  virtual bool readAttribute(DtEnvironment& env, DtEnvValueSP attribute, AttributeDesc& attrributeDescriptor);
198 
202  virtual bool readExtent(DtEnvironment& env, DtEnvValueSP extent, ExtentDesc& extentDescriptor);
203 
207  virtual bool readDimension(DtEnvironment& env, DtEnvValueSP dimension, DimensionDesc& dimimensionDescriptor);
208 
212  virtual bool readBound(DtEnvironment& env, DtEnvValueSP dimension, const DtString& boundName, unsigned long& value);
213 
218  virtual bool readRegionSet(DtEnvironment& env, const std::map<DtString,
219  RegionDesc>& regionmap, DtEnvValueSP regionset,
220  DtString& regionsetname, RegionDescSet& regdescset);
221 
227  virtual bool readClassRegion(DtEnvironment& env, DtEnvValueSP classRegion, DtString& regionSetName, DtString* className=0);
228 
230  virtual void collectRegions(std::map<RegionDesc, DtString>& regionsToWrite) const;
231 
233  virtual void addRegionsToEnv(std::map<RegionDesc, DtString>& regionsToWrite, DtEnvironment& env) const;
234 
236  void addRegionSetsToEnv(std::map<RegionDesc, DtString>& regionsToWrite, DtEnvironment& env) const;
237 
239  void addObjectClassesToEnv(DtEnvironment& env) const;
240 
242  virtual void addInteractionClassesToEnv(DtEnvironment& env) const;
243 
244 
245  public:
247  public:
248  DtString name;
249  unsigned long lower;
250  unsigned long upper;
251 
252  DimensionDesc() : lower(), upper()
253  {
254 
255  }
256  ~DimensionDesc();
257 
260  bool operator<(const DimensionDesc other) const;
261 
262  bool operator==(const DimensionDesc other) const;
263  bool operator!=(const DimensionDesc other) const;
264 
265  int serialize(char* buffer, int maxsize) const;
266  int deserialize(const char* buffer);
267  };
268 
270  public:
271  std::set<DimensionDesc> dimensions;
272 
273  ~ExtentDesc();
274 
277  bool operator<(const ExtentDesc other) const;
278 
279  bool operator==(const ExtentDesc other) const;
280  bool operator!=(const ExtentDesc other) const;
281 
282  int serialize(char* buffer, int maxsize) const;
283  int deserialize(const char* buffer);
284  };
285 
287  public:
288  DtString className;
289  DtString attrName;
290 
293  bool operator<(const AttributeDesc other) const;
294 
295  bool operator==(const AttributeDesc other) const;
296  bool operator!=(const AttributeDesc other) const;
297 
298  int serialize(char* buffer, int maxsize) const;
299  int deserialize(const char* buffer);
300  };
301  typedef std::set<AttributeDesc> AttributeDescSet;
302 
304  public:
305  DtString space;
306  std::set<ExtentDesc> extents;
307  std::map<DtString, AttributeDescSet> attributes;
308 
309  DtString name;
310  unsigned long regionToken;
311 
312  RegionDesc() : regionToken() {}
313  ~RegionDesc();
314 
318  bool operator<(const RegionDesc other) const;
319 
320  bool operator==(const RegionDesc other) const;
321 
322  int serialize(char* buffer, int maxsize) const;
323  int deserialize(const char* buffer);
324  };
325 
326  protected:
328  std::map<DtString, RegionDescSet> myRegionDescSetMap;
329 
331  mutable std::map<DtString, DtDDMRegionSP> myRegions;
332 
334  std::map<DtString, DtString> myObjectToRegionSetMap;
335 
337  std::map<DtString, DtString> myInteractionClassToRegionSetMap;
338 
341 
344 
345  };
346 }
347 
348 #endif

Document ID: Generated on Thu Apr 10 18:53:01 EDT 2014 from SVN revision 138105
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)