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 <clog_qt>
10#include <cres_qt>
11
12#include <QSharedDataPointer>
13
14#include "Forward.h"
15
16namespace knowRDF
17{
18 class Triple
19 {
20 public:
21 Triple();
22 Triple(const Subject& _subject, const knowCore::Uri& _predicate, const Object& _value);
23 Triple(const Triple& _rhs);
24 Triple& operator=(const Triple& _rhs);
25 ~Triple();
26 Subject subject() const;
27 knowCore::Uri predicate() const;
28 Object object() const;
29 bool operator==(const Triple& _triple) const;
30 cres_qresult<QByteArray> md5() const;
31 private:
32 struct Private;
33 QSharedDataPointer<Private> d;
34 };
35 uint qHash(const Triple& key, std::size_t seed);
36} // namespace knowRDF
37
38#include <knowCore/Formatter.h>
39
40#include "Object.h"
41#include "Subject.h"
42
43clog_format_declare_formatter(knowRDF::Triple)
44{
45 return format_to(ctx.out(), "[{} {} {}]", p.subject(), p.predicate(), p.object());
46}
47
48#include <knowCore/MetaType.h>
49KNOWCORE_DECLARE_FULL_METATYPE(knowRDF, Triple);
50
51#endif
Definition Uri.h:15
Definition Object.h:11
Definition Subject.h:21
Definition Triple.h:19