kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Datasets.h
1#pragma once
2
3#ifndef KDB_DATASETS_COLLECTION_IMPORT
4
5#warning "including kDBDatasets/Datasets.h is deprecated, include kDBDatasets/Collection.h and replace Datasets with Collection."
6
7#endif
8
9#include <knowCore/ConstrainedValue.h>
10#include <knowCore/UriList.h>
11
12#include <kDBDatasets/Forward.h>
13
14class TestDatasets;
15
16namespace kDBDatasets
17{
21 class Datasets // TODO kDB 5.0 rename to Collection, to better distinguish between dataset and datasets
22 {
23 friend class ::TestDatasets;
24 public:
25 Datasets();
26 Datasets(const Datasets& _rhs);
27 Datasets operator=(const Datasets& _rhs);
28 ~Datasets();
29 public:
30 bool operator==(const Datasets& _dss) const;
31 public:
36 static knowCore::ReturnValue<Datasets> get(const kDB::Repository::Connection& _connection, const knowCore::Uri& _graph);
41 static knowCore::ReturnValue<Datasets> create(const kDB::Repository::Connection& _connection, const knowCore::Uri& _graph);
46 static knowCore::ReturnValue<Datasets> getOrCreate(const kDB::Repository::Connection& _connection, const knowCore::Uri& _graph);
50 static Datasets allDatasets(const kDB::Repository::Connection& _connection);
54 QT_DEPRECATED_X("Use allCollectionsUris instead") static knowCore::ReturnValue<QList<knowCore::Uri>> allDatasetsUris(const kDB::Repository::Connection& _connection);
58 static knowCore::ReturnValue<QList<knowCore::Uri>> allCollectionsUris(const kDB::Repository::Connection& _connection);
59 public:
63 bool isValid() const;
67 bool isReadOnly() const;
71 knowCore::Uri uri() const;
80 knowCore::ReturnVoid insert(const Dataset& _dataset);
84 std::size_t count() const;
88 knowCore::ReturnValue<Dataset> dataset(const knowCore::Uri& _datasetUri) const;
92 QList<Dataset> all() const;
94 {
95 OperatorOptions() : intersectsPrecision(0.0) {}
96 OperatorOptions(double _intersectsPrecision) : intersectsPrecision(_intersectsPrecision) {}
97 double intersectsPrecision;
98 };
105 knowCore::ReturnValue<QList<Dataset>> datasets(const QList<QPair<knowCore::Uri, knowCore::ConstrainedValue>>& _constraints, const OperatorOptions& _operatorOptions = OperatorOptions()) const;
106 template<typename... _TArgs_>
107 knowCore::ReturnValue<QList<Dataset>> datasets(const knowCore::Uri& _uri, const knowCore::ConstrainedValue& _constraint, const _TArgs_&...) const;
108 Q_DECL_DEPRECATED_X("Use createDataset") knowCore::ReturnValue<Dataset> create(const knowCore::Uri& _typeUri, const knowGIS::GeometryObject& _geometry, const knowCore::Uri& _datasetUri = knowCore::Uri::createUnique({"dataset"}));
112 knowCore::ReturnValue<Dataset> createDataset(const knowCore::Uri& _typeUri, const knowGIS::GeometryObject& _geometry, const knowCore::Uri& _datasetUri = knowCore::Uri::createUnique({"dataset"}));
115 knowCore::ReturnValue<Dataset> insertDatasetFromCbor(const QCborMap& _map);
116 private:
117 template<typename... _TArgs_>
118 void buildDatasetsConstraints(QList<QPair<knowCore::UriList, knowCore::ConstrainedValue>>* _constraints, const knowCore::UriList& _uriList, const knowCore::ConstrainedValue& _constraint, const _TArgs_&...) const;
119 void buildDatasetsConstraints(QList<QPair<knowCore::UriList, knowCore::ConstrainedValue>>* ) const {}
120 template<typename... _TArgs_>
121 void buildDatasetsConstraints(QList<QPair<knowCore::Uri, knowCore::ConstrainedValue>>* _constraints, const knowCore::Uri& _uri, const knowCore::ConstrainedValue& _constraint, const _TArgs_&...) const;
122 void buildDatasetsConstraints(QList<QPair<knowCore::Uri, knowCore::ConstrainedValue>>* ) const {}
123
124 struct Private;
125 QExplicitlySharedDataPointer<Private> d;
126 Datasets(const QExplicitlySharedDataPointer<Private>& _d);
131 static void clearCache();
132 };
133
134 template<typename... _TArgs_>
135 knowCore::ReturnValue<QList<Dataset>> Datasets::datasets(const knowCore::Uri& _uri, const knowCore::ConstrainedValue& _constraint, const _TArgs_&... _args) const
136 {
138 buildDatasetsConstraints(&constraints, _uri, _constraint, _args...);
139
140 return datasets(constraints);
141 }
142 template<typename... _TArgs_>
143 void Datasets::buildDatasetsConstraints(QList<QPair<knowCore::Uri, knowCore::ConstrainedValue>>* _constraints, const knowCore::Uri& _uri, const knowCore::ConstrainedValue& _constraint, const _TArgs_&... _args) const
144 {
145 _constraints->append({_uri, _constraint});
146 buildDatasetsConstraints(_constraints, _args...);
147 }
148 }
Definition Revision.h:9
Definition TestDatasets.h:5
Definition Dataset.h:16
Definition Datasets.h:22
std::size_t count() const
Definition Datasets.cpp:284
static knowCore::ReturnValue< Datasets > getOrCreate(const kDB::Repository::Connection &_connection, const knowCore::Uri &_graph)
Definition Datasets.cpp:187
kDB::Repository::Connection connection() const
Definition Datasets.cpp:279
knowCore::ReturnValue< QList< Dataset > > datasets(const QList< QPair< knowCore::Uri, knowCore::ConstrainedValue > > &_constraints, const OperatorOptions &_operatorOptions=OperatorOptions()) const
Definition Datasets.cpp:387
bool isValid() const
Definition Datasets.cpp:264
static knowCore::ReturnValue< Datasets > create(const kDB::Repository::Connection &_connection, const knowCore::Uri &_graph)
Definition Datasets.cpp:164
QList< Dataset > all() const
Definition Datasets.cpp:354
knowCore::ReturnVoid insert(const Dataset &_dataset)
Definition Datasets.cpp:534
static knowCore::ReturnValue< Datasets > get(const kDB::Repository::Connection &_connection, const knowCore::Uri &_graph)
Definition Datasets.cpp:121
knowCore::ReturnValue< Dataset > dataset(const knowCore::Uri &_datasetUri) const
Definition Datasets.cpp:299
Q_DECL_DEPRECATED_X("Use createDataset") knowCore knowCore::ReturnValue< Dataset > createDataset(const knowCore::Uri &_typeUri, const knowGIS::GeometryObject &_geometry, const knowCore::Uri &_datasetUri=knowCore::Uri::createUnique({"dataset"}))
Definition Datasets.cpp:512
knowCore::Uri uri() const
Definition Datasets.cpp:274
bool isReadOnly() const
Definition Datasets.cpp:269
static Datasets allDatasets(const kDB::Repository::Connection &_connection)
Definition Datasets.cpp:194
static QT_DEPRECATED_X("Use allCollectionsUris instead") static knowCore knowCore::ReturnValue< QList< knowCore::Uri > > allCollectionsUris(const kDB::Repository::Connection &_connection)
Definition Datasets.cpp:225
Definition Connection.h:25
Definition ConstrainedValue.h:15
Definition UriList.h:9
Definition Uri.h:15
static Uri createUnique(const QStringList &_path=QStringList())
Definition Uri.cpp:48
Definition GeometryObject.h:24