kDB: Knowledge DataBase
Loading...
Searching...
No Matches
DataInterfaceRegistry.h
1#include <knowCore/Reference.h>
2#include <knowCore/Value.h>
3
4#include "Interfaces/ExtractIterator.h"
5#include "Interfaces/ValueIterator.h"
6#include "Interfaces/InsertIterator.h"
7
8#include "Forward.h"
9
10namespace kDBDatasets
11{
12 KNOWCORE_DEFINE_REFERENCE(InsertIterator, Interfaces::InsertIterator, KNOWCORE_FORWARD_FUNCTION(next, const QByteArray&), KNOWCORE_FORWARD_FUNCTIONS(finalise));
13 KNOWCORE_DEFINE_REFERENCE(ExtractIterator, Interfaces::ExtractIterator, KNOWCORE_FORWARD_FUNCTIONS(next), KNOWCORE_FORWARD_CONST_FUNCTIONS(hasNext));
14 KNOWCORE_DEFINE_REFERENCE(ValueIterator, Interfaces::ValueIterator, KNOWCORE_FORWARD_FUNCTIONS(next), KNOWCORE_FORWARD_CONST_FUNCTIONS(hasNext));
16 {
17 DataInterfaceRegistry() = delete;
18 ~DataInterfaceRegistry() = delete;
19 public:
20 static knowCore::ReturnValue<InsertIterator> createInsertIterator(const kDB::Repository::Connection& _connection, const Dataset& _dataset);
21 static knowCore::ReturnValue<ValueIterator> createValueIterator(const kDB::Repository::Connection& _connection, const Dataset& _dataset);
22 static knowCore::ReturnValue<ExtractIterator> createExtractIterator(const kDB::Repository::Connection& _connection, const Dataset& _dataset);
23 static knowCore::ReturnValue<Statistics> statistics(const kDB::Repository::Connection& _connection, const Dataset& _dataset);
24 static void registerInterface(const knowCore::Uri& _datatype, Interfaces::DataInterface* _interface);
25 static void registerInterface(const knowCore::Uri& _datatype, Interfaces::DataInterface2* _interface);
29 static knowCore::ReturnVoid exportTo(const kDB::Repository::Connection& _connection, const Dataset& _dataset, QIODevice* _device);
35 static knowCore::ReturnVoid importFrom(const kDB::Repository::Connection& _connection, const QList<Collection>& _collections, QIODevice* _device);
36 private:
37 struct Private;
38 };
39}
40
41#define __KDB_KDB_REGISTER_DATASET_DATA_INTERFACE(_NAME_, _URI_, _INTERFACE_, ...) \
42 namespace { \
43 class _NAME_ \
44 { \
45 _NAME_() \
46 { \
47 kDBDatasets::DataInterfaceRegistry::registerInterface(_URI_, new _INTERFACE_(__VA_ARGS__)); \
48 } \
49 static _NAME_ instance; \
50 }; \
51 _NAME_ _NAME_::instance; \
52 }
53
54#define KDB_REGISTER_DATASET_DATA_INTERFACE(_URI_, _INTERFACE_) \
55 __KDB_KDB_REGISTER_DATASET_DATA_INTERFACE(__KNOWCORE_UNIQUE_STATIC_NAME(DataInterfaceRegster), _URI_, _INTERFACE_)
Definition Revision.h:9
Definition DataInterfaceRegistry.h:16
static knowCore::ReturnVoid importFrom(const kDB::Repository::Connection &_connection, const QList< Collection > &_collections, QIODevice *_device)
Definition DataInterfaceRegistry.cpp:165
static knowCore::ReturnVoid exportTo(const kDB::Repository::Connection &_connection, const Dataset &_dataset, QIODevice *_device)
Definition DataInterfaceRegistry.cpp:85
Definition Dataset.h:16
Definition DataInterface2.h:7
Definition DataInterface.h:6
Definition Connection.h:25
Definition Uri.h:15