Fire Core  8.0.0.alpha
GIS framework per tutti gli usi
 Tutto Classi Namespace Funzioni Variabili Ridefinizioni di tipo (typedef) Tipi enumerati (enum) Valori del tipo enumerato Friend
DriverType.hpp
1 #ifndef DRIVERTYPE_HPP_INCLUDED
2 #define DRIVERTYPE_HPP_INCLUDED
3 
4 
5 #include <boost/algorithm/string.hpp>
6 
7 #include <map>
8 #include <vector>
9 #include <string>
10 #include <sstream>
11 
12 namespace fire {
13 namespace source {
14 namespace raster {
15 namespace DriverType {
16 
17 
18 enum DriverType {
19  VRT = 1,
20  GTiff,
21  HFA,
22  AAIGrid,
23  GRASSASCIIGrid,
24  PNG,
25  JPEG,
26  MEM,
27  GIF,
28  BIGGIF,
29  XPM,
30  BMP,
31  XYZ,
32  PDF,
33  E00GRID,
34  Unknown
35 };
36 
37 inline void _getList(std::vector< DriverType >& list) {
38  list.push_back(VRT);
39  list.push_back(GTiff);
40  list.push_back(HFA);
41  list.push_back(AAIGrid);
42  list.push_back(GRASSASCIIGrid);
43  list.push_back(PNG);
44  list.push_back(JPEG);
45  list.push_back(MEM);
46  list.push_back(GIF);
47  list.push_back(BIGGIF);
48  list.push_back(XPM);
49  list.push_back(BMP);
50  list.push_back(XYZ);
51  list.push_back(PDF);
52  list.push_back(E00GRID);
53  list.push_back(Unknown);
54 }
55 
56 inline std::string toString(DriverType const& type) {
57 
58  std::stringstream ss;
59  switch (type) {
60  case VRT:
61  ss << "VRT";
62  break;
63  case GTiff:
64  ss << "GTiff";
65  break;
66  case HFA:
67  ss << "HFA";
68  break;
69  case AAIGrid:
70  ss << "AAIGrid";
71  break;
72  case GRASSASCIIGrid:
73  ss << "GRASSASCIIGrid";
74  break;
75  case PNG:
76  ss << "PNG";
77  break;
78  case JPEG:
79  ss << "JPEG";
80  break;
81  case MEM:
82  ss << "MEM";
83  break;
84  case GIF:
85  ss << "GIF";
86  break;
87  case BIGGIF:
88  ss << "BIGGIF";
89  break;
90  case XPM:
91  ss << "XPM";
92  break;
93  case BMP:
94  ss << "BMP";
95  break;
96  case XYZ:
97  ss << "XYZ";
98  break;
99  case PDF:
100  ss << "PDF";
101  break;
102  case E00GRID:
103  ss << "E00GRID";
104  break;
105  default:
106  ss << "Unknown";
107  break;
108  }
109  return ss.str();
110 }
111 
112 inline DriverType fromString(const std::string& str) {
113 
114  /*DriverType list[] = {
115  VRT,
116  GTiff,
117  HFA,
118  AAIGrid,
119  GRASSASCIIGrid,
120  PNG,
121  JPEG,
122  MEM,
123  GIF,
124  BIGGIF,
125  XPM,
126  BMP,
127  XYZ,
128  PDF,
129  E00GRID,
130  Unknown
131  };
132  int len = sizeof(list)/sizeof(DriverType);*/
133 
134  std::vector< DriverType > list;
135  _getList(list);
136  int len = list.size();
137  for (int i = 0; i < len; i++) {
138  DriverType item = list[i];
139  if (toString(item) == str)
140  return item;
141  }
142 
143  return Unknown;
144 }
145 
146 inline DriverType fromExtension(const std::string& extension) {
147  typedef std::map< std::string, DriverType > MapDriverType;
148 
149  std::string tmpExt(extension);
150  boost::to_lower(tmpExt);
151 
152  MapDriverType map;
153  map[".tif"] = GTiff;
154  map[".tiff"] = GTiff;
155  map[".png"] = PNG;
156  map[".jpg"] = JPEG;
157  map[".jpeg"] = JPEG;
158 
159  MapDriverType::const_iterator it;
160  it = map.find(tmpExt);
161  if (it != map.end()) {
162  return it->second;
163  }
164 
165  return Unknown;
166 }
167 
168 inline int getCount() {
169 
170  /*int value;
171  DriverType list[] = {
172  VRT,
173  GTiff,
174  HFA,
175  AAIGrid,
176  GRASSASCIIGrid,
177  PNG,
178  JPEG,
179  MEM,
180  GIF,
181  BIGGIF,
182  XPM,
183  BMP,
184  XYZ,
185  PDF,
186  E00GRID,
187  Unknown
188  };
189  value = (sizeof(list)/sizeof(*list));
190  return value;*/
191 
192  std::vector< DriverType > list;
193  _getList(list);
194  return list.size() - 1;
195 }
196 
197 } // namespace DriverType
198 } // namespace raster
199 } // namespace source
200 } // namespace fire
201 
202 
203 #endif //DRIVERTYPE_HPP_INCLUDED
BooleanOperator fromString(const std::string &string)
Restituisce il valore di un operatore booleano data una stringa che rappresenta il valore dell'operat...
Definition: BooleanOperator.hpp:88
std::string toString(const BooleanOperator &booleanOperator)
Restituisce la stringa che rappresenta il valore di un operatore booleano dato il valore di un operat...
Definition: BooleanOperator.hpp:40