IFile.hpp
1 #ifndef DM_IFILE_HPP_INCLUDED
2 #define DM_IFILE_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/ObjectBase.hpp"
11 
12 DM_NAMESPACE_BEGIN
13 
14 class IAddInfoLayout;
15 
16 /// \brief Imported files are preserved and represented by such objects within an ODM (see IDatamanager::beginFiles)
17 class DM_API IFile : public ObjectBase
18 {
19 public:
20  virtual ~IFile() {}
21 
22  virtual IFile* clone() const = 0;
23 
24  virtual unsigned int id() const = 0;
25 
26  virtual const char *filename() const = 0;
27  //E_dataformat format() const = 0;
28 
29  virtual int64_t sizeGeometry() const = 0;
30  virtual int64_t sizePoint() const = 0;
31  virtual int64_t sizePolyline() const = 0;
32  virtual int64_t sizePolylinePoint() const = 0;
33  virtual int64_t sizePolygon() const = 0;
34  virtual int64_t sizePolygonPoint() const = 0;
35 
36  virtual bool hasLayout() const = 0;
37  virtual const IAddInfoLayout& layout() const = 0;
38 
39  //virtual const_iterator_layer beginLayer() const=0;
40  //virtual const_iterator_layer endLayer() const=0;
41 };
42 
44 
45 
46 DM_NAMESPACE_END
47 
48 #endif //DM_IFILE_HPP_INCLUDED