Ilwis-Objects  1.0
GIS and Remote Sensing framework for data access and processing
 All Classes Functions Enumerations Pages
dataformat.h
1 #ifndef DATAFORMAT_H
2 #define DATAFORMAT_H
3 
4 namespace Ilwis {
5 class KERNELSHARED_EXPORT DataFormat
6 {
7 public:
8  enum FormatProperties{fpCODE, fpNAME, fpDESCRIPTION, fpEXTENSION, fpCONTAINER, fpDATATYPE, fpCONNECTOR, fpREADWRITE, fpEXTENDEDTYPE};
9  DataFormat();
10  DataFormat(const QString& code, const QString connector = sUNDEF);
11  DataFormat(const QString &connector, const QString& code, const QString& longname,
12  const QString& extensions, const QString& access, IlwisTypes datatypes, const QString& description=sUNDEF);
13  QVariant property(FormatProperties prop) const;
14  bool isValid() const;
15  bool store();
16 
17  static QVariantList getFormatProperties(FormatProperties, IlwisTypes types, QString connector=sUNDEF, QString code=sUNDEF);
18  static bool supports(FormatProperties fp, IlwisTypes tp, const QVariant& prop, const QString& connector=sUNDEF);
19  static bool setFormatInfo(const QString &path, const QString connector);
20  static std::multimap<QString, DataFormat> getSelectedBy(FormatProperties prop, const QString &selection);
21 
22 private:
23  QVariant set(const QVariant& original) const;
24  std::map<FormatProperties, QVariant> _properties;
25  bool _isValid = false;
26 
27  void setProps(QSqlQuery &db, const QString &code);
28 };
29 }
30 
31 #endif // DATAFORMAT_H