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
MetadataSh.hpp
1 // Copyright © 2015 GEOSYSTEMS SRL
2 // All Rights Reserved.
3 
4 #ifndef FIRE_PLUGIN_DATA_SHARED_METADATASH_HPP_INCLUDED
5 #define FIRE_PLUGIN_DATA_SHARED_METADATASH_HPP_INCLUDED
6 
7 #include <boost/shared_ptr.hpp>
8 #include <fire/shared/Shared.hpp>
9 
10 #include <string>
11 #include <exception>
12 
13 #include "fire/gis/export.hpp"
14 #include "fire/source/vector/Buffer.hpp"
15 #include "fire/source/vector/Metadata.hpp"
16 
17 namespace fire {
18 namespace source {
19 namespace vector {
20 namespace shared {
21 
22 class FIRE_GIS_DLL MetadataSh: public fire::shared::Shared< Metadata > {
23  public:
24  MetadataSh(): Shared(NULL) {
25  Metadata* mtd = new Metadata();
26  _ptr.reset(mtd);
27  }
28 
29  explicit MetadataSh(Metadata* ptr): Shared(ptr) {
30  }
31 
32  explicit MetadataSh(const Metadata& mtd): Shared(NULL) {
33  Metadata* ptr = new Metadata(mtd);
34  _ptr.reset(ptr);
35  }
36 
37  MetadataSh(const std::string& db, const std::string& schema, const std::string& tbl): Shared(NULL) {
38  Metadata* mtd = new Metadata(db, schema, tbl);
39  _ptr.reset(mtd);
40  }
41 
42  MetadataSh(MetadataSh const & c) {
43  this->operator =(c);
44  }
45 
46  inline bool operator!=(MetadataSh const & r) const {
47  return !(this->operator ==(r));
48  }
49 
50  inline bool operator==(MetadataSh const & r) const {
51  if (!r)
52  return false;
53 
54  bool same = Shared::operator ==(r);
55  if (same)
56  return same;
57 
58  const Metadata& lMtd = *this;
59  const Metadata& rMtd = r;
60 
61  return lMtd == rMtd;
62  }
63 
64  inline bool isEqualsStricted(MetadataSh const & r) const {
65  if (!r)
66  return false;
67 
68  bool same = Shared::operator ==(r);
69  if (same)
70  return same;
71 
72  return _getPtr()->isEqualsStricted(r);
73  }
74 
75  inline void getSource(std::string& db, std::string& schema, std::string& tbl) const {
76  _getPtr()->getSource(db, schema, tbl);
77  }
78 
79  inline void setSource(std::string const & db, std::string const & schema, std::string const & tbl) {
80  _getPtr()->setSource(db, schema, tbl);
81  }
82 
83  inline void add(const Field::FieldShp& fld) {
84  return _getPtr()->add(fld);
85  }
86 
87  inline Field::FieldShp del(const std::string& name) {
88  return _getPtr()->del(name);
89  }
90 
91  inline Field::FieldShp del(const size_t &idx) {
92  return _getPtr()->del(idx);
93  }
94 
95  inline size_t getCount() const {
96  return _getPtr()->getCount();
97  }
98 
99  inline int nameToIndex(const std::string& name) const {
100  return _getPtr()->nameToIndex(name);
101  }
102 
103  inline std::string indexToName(const int& idx) const {
104  return _getPtr()->indexToName(idx);
105  }
106 
107  inline void getKeyColumns(Metadata::VctFldName & list) const {
108  return _getPtr()->getKeyColumns(list);
109  }
110 
111  inline void getGeometryColumns(Metadata::VctFldName & list) const {
112  return _getPtr()->getGeometryColumns(list);
113  }
114 
115  inline Field::FieldShp get(const std::string& name) {
116  return _getPtr()->get(name);
117  }
118 
119  inline Field::FieldShp const get(const std::string& name) const {
120  return _getPtr()->get(name);
121  }
122 
123  inline Field::FieldShp get(const size_t& idx) {
124  return _getPtr()->get(idx);
125  }
126 
127  inline Field::FieldShp const get(const size_t& idx) const {
128  return _getPtr()->get(idx);
129  }
130 };
131 
132 } // namespace shared
133 } // namespace vector
134 } // namespace source
135 } // namespace fire
136 
137 #endif
Definition: FieldSh.hpp:21
Definition: MetadataSh.hpp:22
Definition: Shared.hpp:17
Definisce la struttura di un contenitore di dati vettoriali. Permette di sapere quante colonne compon...
Definition: Metadata.hpp:29