kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Nodes.h
1#ifndef _KDB_SPARQL_ALGEBRA_NODES_H_
2#define _KDB_SPARQL_ALGEBRA_NODES_H_
3
4#include "Node.h"
5#include <knowCore/Uri.h>
6#include <knowRDF/BlankNode.h>
7#include <knowRDF/Triple.h>
8
9class QVariant;
10
11namespace kDB::SPARQL
12{
13 namespace Algebra
14 {
15 enum class SelectModifier
16 {
17 None, Distinct, Reduced
18 };
19 enum class DatasetType {
20 Anonymous, Named
21 };
22 enum class OrderDirection
23 {
24 Asc, Desc
25 };
26 enum class GraphType {
27 Graph, Default, Named, All
28 };
29 }
30}
31
32#define KDB_SPARQL_ALGEBRA_GENERATE(_KLASS_NAME_, _MEMBER_DEF_) \
33 class _KLASS_NAME_; \
34 typedef knowCore::ConstExplicitlySharedDataPointer<_KLASS_NAME_> _KLASS_NAME_ ## CSP;
35
36
37namespace kDB::SPARQL
38{
39 namespace Algebra
40 {
41#include "NodesDefs.h"
42 }
43}
44
45#undef KDB_SPARQL_ALGEBRA_GENERATE
46
47#define KDB_SPARQL_ALGEBRA_GENERATE_CONSTRUCTOR_ARGUMENT(_KLASS_NAME_, _TYPE_, _NAME_) \
48 _TYPE_ _ ## _NAME_,
49
50#define KDB_SPARQL_ALGEBRA_GENERATE_ACCESSOR_DECLARATION(_KLASS_NAME_, _TYPE_, _NAME_,...) \
51 _TYPE_ _NAME_() const;
52
53#define KDB_SPARQL_ALGEBRA_GENERATE(_KLASS_NAME_, _MEMBER_DEF_) \
54 class _KLASS_NAME_ : public Node \
55 { \
56 public: \
57 _KLASS_NAME_(_MEMBER_DEF_(_KLASS_NAME_, KDB_SPARQL_ALGEBRA_GENERATE_CONSTRUCTOR_ARGUMENT) void* _ = nullptr); \
58 ~_KLASS_NAME_(); \
59 public: \
60 _MEMBER_DEF_(_KLASS_NAME_, KDB_SPARQL_ALGEBRA_GENERATE_ACCESSOR_DECLARATION); \
61 using Node::accept; \
62 private: \
63 void accept(details::AbstractNodeVisitorAdaptor* _node, void* _r, void* _parameter) const override; \
64 private: \
65 struct Private; \
66 };
67
68namespace kDB::SPARQL
69{
70 namespace Algebra
71 {
72#include "NodesDefs.h"
73 }
74}
75
76#undef KDB_SPARQL_ALGEBRA_GENERATE
77
78#endif