Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
catalogconnector.h
1 #ifndef CATALOGCONNECTOR_H
2 #define CATALOGCONNECTOR_H
3 
4 #include "Kernel_global.h"
5 #include <QStringList>
6 
7 namespace Ilwis {
8 
9 class Catalog;
10 class CatalogConnector;
11 class CatalogExplorer;
12 
13 typedef std::unique_ptr<CatalogConnector> UPCatalogConnector;
14 typedef std::unique_ptr<CatalogExplorer> UPCatalogExplorer;
15 
16 class KERNELSHARED_EXPORT CatalogConnector : public IlwisObjectConnector
17 {
18 public:
19  enum FilterOptions{ foFULLPATHS=1, foNAMESONLY=2, foEXTENSIONFILTER=4};
20  enum OpenMode { omTEXT, omBINARY};
21 
22  CatalogConnector(const Resource& resource, bool load);
23  Ilwis::IlwisObject *create() const;
24 
25  virtual ~CatalogConnector() {}
26 
27  bool loadMetaData(IlwisObject *obj);
28  bool loadData(IlwisObject *obj);
29 
30  bool isValid() const;
31  virtual bool canUse(const Resource& resource) const;
32 
33  virtual QFileInfo toLocalFile(const Resource &datasource) const;
34  virtual QFileInfo toLocalFile(const QUrl &url) const;
35 
36  QString provider() const;
37 
38  static ConnectorInterface *create(const Ilwis::Resource &resource, bool load=true,const PrepareOptions& options=PrepareOptions());
39 
40 protected:
41  virtual bool loadExplorers();
42 
43 
44 private:
45  std::vector<UPCatalogExplorer> _dataProviders;
46 };
47 
48 }
49 
50 
51 #endif // CATALOGCONNECTOR_H