IDatamanagerHeader.hpp
1 #ifndef DM_IDATAMANAGER_HEADER_HPP_INCLUDED
2 #define DM_IDATAMANAGER_HEADER_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 #include "DM/config.hpp"
9 #include "DM/Handle.hpp"
10 #include "DM/IGeometry.hpp"
11 #include "DM/IBox.hpp"
12 #include "DM/IAddInfoStatistics.hpp"
13 #include "DM/IIndexStats.hpp"
14 #include "DM/AutoLink.hpp" //enable autolink
15 
16 DM_NAMESPACE_BEGIN
17 
18 /// \brief Interface to an datamanager header (ODM) object
19 /**
20  The object provides the header information of the ODM file. The header information
21  can be accessed without actually opening a datamanager (see IDatamnager::getHeaderODM)
22 */
23 class DM_API IDatamanagerHeader : public ObjectBase
24 {
25 public:
26  virtual int64_t sizeGeometry() const = 0;
27  virtual int64_t sizePoint() const = 0;
28  virtual int64_t sizePolyline() const = 0;
29  virtual int64_t sizePolylinePoint() const = 0;
30  virtual int64_t sizePolygon() const = 0;
31  virtual int64_t sizePolygonPoint() const = 0;
32 
33  virtual BoxHandle getLimit() const = 0;
34 
35  virtual double estimatedPointDensity() const = 0;
36 
37  virtual bool storesOrder() const = 0;
38 
39  virtual AddInfoStatisticsHandle getAddInfoStatistics() const = 0;
40 
41  virtual IndexStatsHandle getPointIndexStatistics() const = 0;
42  virtual IndexStatsHandle getPolylineIndexStatistics() const = 0;
43 
44  virtual const char* getCRS() const = 0;
45 };
46 
48 
49 DM_NAMESPACE_END
50 
51 
52 #endif //DM_IDATAMANAGER_HEADER_HPP_INCLUDED