kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Dataset.h
1#pragma once
2
3#include <QExplicitlySharedDataPointer>
4
5#include <knowCore/Value.h>
6
7#include "Forward.h"
8
9namespace kDBDatasets
10{
15 class Dataset
16 {
17 friend class Datasets;
18 public:
19 //TODO kDB 5.0 should be enum class
20 enum Status
21 {
22 Completed, //< The data has been acquired or computed
23 InProgress, //< The data is currently been acquired or been computed
24 InPreparation, //< The acquisition or computation of the data is been prepared
25 Scheduled, //< The acquisition or computation of the data is been scheduled
26 Unknown //< The status is unknown or not specified
27 };
28 public:
32 Dataset();
33 Dataset(const Dataset& _rhs);
34 Dataset& operator=(const Dataset& _rhs);
35 ~Dataset();
36 public:
37 bool operator==(const Dataset& _rhs) const;
38 public:
39 bool isValid() const;
40 knowCore::Uri uri() const;
41 knowCore::Uri type() const;
45 knowCore::Timestamp startTime() const; // TODO kDB 5 return ReturnValue<Timestamp>
49 knowCore::Timestamp endTime() const; // TODO kDB 5 return ReturnValue<Timestamp>
53 QList<Dataset> createdFrom() const; // TODO kDB 5 return ReturnValue<QList<Dataset>>
57 knowCore::ReturnValue<bool> hasProperty(const knowCore::Uri& _property) const;
61 knowCore::ReturnValue<knowCore::Value> property(const knowCore::Uri& _property) const;
65 template<typename _T_, std::enable_if_t<not std::is_base_of_v<knowCore::Value, _T_>, bool> = true>
66 knowCore::ReturnValue<_T_> property(const knowCore::Uri& _property) const;
70 knowCore::ReturnVoid setProperty(const knowCore::Uri& _property, const knowCore::Value& _value) const;
74 template<typename _T_, std::enable_if_t<not std::is_base_of_v<knowCore::Value, _T_>, bool> = true>
75 knowCore::ReturnVoid setProperty(const knowCore::Uri& _property, const _T_& _value) const { return setProperty(_property, knowCore::Value::fromValue(_value)); }
87 QT_DEPRECATED_X("Use collections instead.") QList<Datasets> datasetses() const;
95 knowCore::ReturnVoid associate(const knowCore::Uri& _agent);
99 knowCore::ReturnVoid dissociate(const knowCore::Uri& _agent);
103 knowCore::ReturnValue<QList<knowCore::Uri>> associatedAgents() const;
107 knowCore::ReturnValue<Status> status() const;
111 knowCore::ReturnValue<knowCore::Uri> statusUri() const;
115 knowCore::ReturnVoid setStatus(Status) const;
119 knowCore::ReturnVoid setStatus(const knowCore::Uri& _uri) const;
123 knowCore::ReturnValue<QCborMap> toCborMap() const;
124 private:
125 struct Private;
126 QExplicitlySharedDataPointer<Private> d;
127 };
128 template<typename _T_, std::enable_if_t<not std::is_base_of_v<knowCore::Value, _T_>, bool> = true>
129 inline knowCore::ReturnValue<_T_> Dataset::property(const knowCore::Uri& _property) const
130 {
131 KNOWCORE_RETURN_VALUE_TRY(value, property(_property));
132 return value.value<_T_>();
133 }
134}
135
136#include <knowCore/Formatter.h>
137
138KNOWCORE_CORE_DECLARE_FORMATTER_ENUM(kDBDatasets::Dataset::Status, Completed, InProgress, InPreparation, Scheduled, Unknown)
Definition Revision.h:9
Definition Dataset.h:16
knowCore::ReturnValue< bool > hasProperty(const knowCore::Uri &_property) const
Definition Dataset.cpp:260
knowCore::ReturnVoid dissociate(const knowCore::Uri &_agent)
Definition Dataset.cpp:137
Dataset()
Definition Dataset.cpp:57
knowCore::ReturnVoid setStatus(Status) const
Definition Dataset.cpp:236
knowGIS::GeometryObject geometry() const
Definition Dataset.cpp:96
knowCore::Timestamp endTime() const
Definition Dataset.cpp:181
QList< Collection > collections() const
Definition Dataset.cpp:111
knowCore::ReturnValue< QCborMap > toCborMap() const
Definition Dataset.cpp:275
knowCore::ReturnVoid setProperty(const knowCore::Uri &_property, const knowCore::Value &_value) const
Definition Dataset.cpp:270
knowCore::ReturnValue< knowCore::Uri > statusUri() const
Definition Dataset.cpp:219
knowCore::ReturnValue< QList< knowCore::Uri > > associatedAgents() const
Definition Dataset.cpp:153
knowCore::ReturnValue< knowCore::Value > property(const knowCore::Uri &_property) const
Definition Dataset.cpp:265
QT_DEPRECATED_X("Use collections instead.") QList< Datasets > datasetses() const
knowCore::ReturnVoid associate(const knowCore::Uri &_agent)
Definition Dataset.cpp:121
knowCore::ReturnVoid setProperty(const knowCore::Uri &_property, const _T_ &_value) const
Definition Dataset.h:75
knowCore::Timestamp startTime() const
Definition Dataset.cpp:170
kDB::Repository::Connection connection() const
Definition Dataset.cpp:101
QList< Dataset > createdFrom() const
Definition Dataset.cpp:192
knowCore::ReturnValue< Status > status() const
Definition Dataset.cpp:198
Definition Datasets.h:22
Definition Connection.h:25
Definition Timestamp.h:39
Definition Uri.h:15
Definition Value.h:21
static Value fromValue(const _T_ &_value)
Definition Value.h:241
Definition GeometryObject.h:24
Definition Dataset_p.h:16