Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
connectorinterface.h
1 #ifndef ICONNECTOR_H
2 #define ICONNECTOR_H
3 
4 #include "Kernel_global.h"
5 #include <QExplicitlySharedDataPointer>
6 
7 namespace Ilwis {
8 
9 class IlwisObject;
10 class ConnectorFactory;
11 class Resource;
12 class Grid;
13 class OperationExpression;
14 class ExecutionContext;
15 
22 class KERNELSHARED_EXPORT ConnectorInterface {
23 public:
24  virtual ~ConnectorInterface() {}
31  virtual bool loadMetaData(IlwisObject* ) { return false;}
32 
40  virtual Grid* loadGridData(IlwisObject*) { return 0;}
45  virtual bool loadData(IlwisObject* ) { return false; }
46  virtual bool dataIsLoaded() const { return false; }
47  virtual bool store(IlwisObject *, int ) { return false; }
48 
49  virtual bool execute(const OperationExpression& , ExecutionContext *) { return false; }
56  virtual bool isReadOnly() { return true; }
57 
64  virtual ConnectorInterface* clone() const { return 0; }
69  virtual Resource& source() = 0;
70  virtual QString provider() const = 0;
71  virtual void format(const QString&) {}
72  virtual QString format() const { return sUNDEF; }
73  virtual bool isValid() const { return true;}
74  virtual bool canUse(const Resource& ) const { return true; }
75 
76 };
77 
78 
79 typedef ConnectorInterface* (*ConnectorCreate)(const Resource& resource, bool load,const PrepareOptions& options);
80 }
81 
82 #endif // ICONNECTOR_H