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,
18 Distinct,
19 Reduced
20 };
21 enum class DatasetType
22 {
23 Anonymous,
24 Named
25 };
26 enum class OrderDirection
27 {
28 Asc,
29 Desc
30 };
31 enum class GraphType
32 {
33 Graph,
34 Default,
35 Named,
36 All
37 };
38 } // namespace Algebra
39} // namespace kDB::SPARQL
40
41#define KDB_SPARQL_ALGEBRA_GENERATE(_KLASS_NAME_, _MEMBER_DEF_) \
42 class _KLASS_NAME_; \
43 typedef knowCore::ConstExplicitlySharedDataPointer<_KLASS_NAME_> _KLASS_NAME_##CSP;
44
45namespace kDB::SPARQL
46{
47 namespace Algebra
48 {
49#include "NodesDefs.h"
50 }
51} // namespace kDB::SPARQL
52
53#undef KDB_SPARQL_ALGEBRA_GENERATE
54
55#define KDB_SPARQL_ALGEBRA_GENERATE_CONSTRUCTOR_ARGUMENT(_KLASS_NAME_, _TYPE_, _NAME_) \
56 _TYPE_ _##_NAME_,
57
58#define KDB_SPARQL_ALGEBRA_GENERATE_ACCESSOR_DECLARATION(_KLASS_NAME_, _TYPE_, _NAME_, ...) \
59 _TYPE_ _NAME_() const;
60
61#define KDB_SPARQL_ALGEBRA_GENERATE(_KLASS_NAME_, _MEMBER_DEF_) \
62 class _KLASS_NAME_ : public Node \
63 { \
64 public: \
65 _KLASS_NAME_(_MEMBER_DEF_(_KLASS_NAME_, \
66 KDB_SPARQL_ALGEBRA_GENERATE_CONSTRUCTOR_ARGUMENT) void* _ \
67 = nullptr); \
68 ~_KLASS_NAME_(); \
69 public: \
70 _MEMBER_DEF_(_KLASS_NAME_, KDB_SPARQL_ALGEBRA_GENERATE_ACCESSOR_DECLARATION); \
71 using Node::accept; \
72 private: \
73 void accept(details::AbstractNodeVisitorAdaptor* _node, void* _r, \
74 void* _parameter) const override; \
75 private: \
76 struct Private; \
77 };
78
79namespace kDB::SPARQL
80{
81 namespace Algebra
82 {
83#include "NodesDefs.h"
84 }
85} // namespace kDB::SPARQL
86
87#undef KDB_SPARQL_ALGEBRA_GENERATE
88
89#endif