VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
surfaceCharacteristicsMap.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vlutil/vlFilename.h>
14 #include <vlutil/vlString.h>
15 
16 #include <geometry/surface.h>
17 
18 #include <boost/unordered_map.hpp>
19 #include <set>
20 #include <map>
21 
22 #include <sstream>
23 #include <string>
24 
25 #include <tbb/spin_rw_mutex.h>
26 
27 namespace makVrf {
29  {
30  public:
31 
32  class Entry
33  {
34  public:
35  //virtual ~Entry();
36 
37  virtual bool matches(const DtString& str) const = 0;
39  virtual int position() const = 0;
40  };
41 
44 
47 
49  virtual bool init(const DtFilename filename, bool displayWarning = false);
50 
53  virtual bool characteristicsFromString(const char* str,
54  unsigned int& characteristics, int& position, int& matchClass);
55  virtual bool characteristicsFromString(const std::string& str,
56  unsigned int& characteristics, int& position, int& matchClass);
57  virtual bool characteristicsFromString(const std::string& str,
58  unsigned int& characteristics);
59 
60  virtual void printResults(const char* str, unsigned int characteristics, const char* additionalInformation = 0);
61 
62  protected:
64  virtual bool get(std::istream& stream);
65 
67  virtual bool processToken(std::istream& stream, const DtString& token);
68 
69  typedef boost::unordered_map<DtString, boost::shared_ptr<Entry> > MatchMap;
70  typedef std::map<DtString, boost::shared_ptr<Entry> > EntryList;
71 
74 
76 
77  static const DtString theMatchString;
79 
81  {
82  structCharacteristicsFromString(const DtFilename& exactMatch, const DtString& duplicateString):
83  myExactMatch(exactMatch),
84  myDuplicateString(duplicateString)
85  {
86  }
87  DtFilename myExactMatch;
89  };
90 
91  typedef std::map <std::string, structCharacteristicsFromString> CharacteristicsFromStringMap;
95 
97  mutable tbb::spin_rw_mutex myCharacteristicsFromStringCacheMutex;
98 
99 
100  private:
101 
107  std::set<std::string> myPrintedMessages;
108  };
109 
110 }
virtual bool init(const DtFilename filename, bool displayWarning=false)
Initialize the metafile. Calls createSurface().
boost::unordered_map< DtString, boost::shared_ptr< Entry > > MatchMap
Definition: surfaceCharacteristicsMap.h:69
structCharacteristicsFromString(const DtFilename &exactMatch, const DtString &duplicateString)
Definition: surfaceCharacteristicsMap.h:82
int myCurrentPosition
Definition: surfaceCharacteristicsMap.h:75
static const DtString theMatchString
Definition: surfaceCharacteristicsMap.h:77
std::set< std::string > myPrintedMessages
This is here to prevent error/status messages from streaming out endlessly. Should probably be change...
Definition: surfaceCharacteristicsMap.h:107
DtString myDuplicateString
Definition: surfaceCharacteristicsMap.h:88
MatchMap myExactMatches
Definition: surfaceCharacteristicsMap.h:72
Definition: surfaceCharacteristicsMap.h:28
virtual bool matches(const DtString &str) const =0
DtSurfaceCharacteristicMap()
default constructor.
std::map< std::string, structCharacteristicsFromString > CharacteristicsFromStringMap
Definition: surfaceCharacteristicsMap.h:91
tbb::spin_rw_mutex myCharacteristicsFromStringCacheMutex
Mutex to control access to myCharacteristicsFromStringCache.
Definition: surfaceCharacteristicsMap.h:97
virtual int position() const =0
virtual void printResults(const char *str, unsigned int characteristics, const char *additionalInformation=0)
voidpf stream
Definition: ioapi.h:39
unsigned int DtCharacteristics
Definition: surface.h:196
EntryList myEntries
Definition: surfaceCharacteristicsMap.h:73
CharacteristicsFromStringMap myCharacteristicsFromStringCache
Keep a cache of the string already process in characteristicsFromString() to speed up the search...
Definition: surfaceCharacteristicsMap.h:94
virtual bool processToken(std::istream &stream, const DtString &token)
identifies a token or passes token the parent class.
std::map< DtString, boost::shared_ptr< Entry > > EntryList
Definition: surfaceCharacteristicsMap.h:70
virtual DtSurface::DtCharacteristics characteristics() const =0
virtual ~DtSurfaceCharacteristicMap()
destructor
Definition: surfaceCharacteristicsMap.h:32
virtual bool characteristicsFromString(const char *str, unsigned int &characteristics, int &position, int &matchClass)
Set characteristics based on a string (version are doing the same thing but with the accurate paramet...
static const DtString theRegExprMatchString
Definition: surfaceCharacteristicsMap.h:78
DtFilename myExactMatch
Definition: surfaceCharacteristicsMap.h:87

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)