knowL: Knowledge Libraries
Loading...
Searching...
No Matches
Triple.h
1/*
2 * Copyright (c) 2015 Cyrille Berger <cberger@cberger.net>
3 *
4 */
5
6#ifndef _KNOWCORE_RDF_TRIPLE_H_
7#define _KNOWCORE_RDF_TRIPLE_H_
8
9#include <QSharedDataPointer>
10#include <knowCore/ReturnValue.h>
11
12#include "Forward.h"
13
14namespace knowRDF
15{
16 class Triple
17 {
18 public:
19 Triple();
20 Triple(const Subject& _subject, const knowCore::Uri& _predicate, const Object& _value);
21 Triple(const Triple& _rhs);
22 Triple& operator=(const Triple& _rhs);
23 ~Triple();
24 Subject subject() const;
25 knowCore::Uri predicate() const;
26 Object object() const;
27 bool operator==(const Triple& _triple) const;
29 private:
30 struct Private;
31 QSharedDataPointer<Private> d;
32 };
33 uint qHash(const Triple& key, uint seed);
34}
35
36#include <knowCore/Formatter.h>
37
38KNOWCORE_CORE_DECLARE_FORMATTER(knowRDF::Triple)
39{
40 return format_to(ctx.out(), "[{} {} {}]", p.subject(), p.predicate(), p.object());
41}
42
43#include <knowCore/MetaType.h>
44KNOWCORE_DECLARE_FULL_METATYPE(knowRDF, Triple)
45
46#endif
Definition ReturnValue.h:29
Definition Uri.h:14
Definition Object.h:11
Definition Subject.h:18
Definition Triple.h:17