kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Uri.h
1#ifndef _KNOW_CORE_URI_H_
2#define _KNOW_CORE_URI_H_
3
4#include <functional>
5
6#include <QSharedDataPointer>
7#include <QVariant>
8#include <qt6/QtCore/QtCore>
9
10#include "Forward.h"
11
12namespace knowCore
13{
14 class Uri
15 {
16 public:
17 Uri();
18 Uri(const QUrl& _url);
19 Uri(const QString& _uri);
20 Uri(const Uri& _base, const QString& _uri);
21 Uri(const Uri& _rhs);
22 Uri& operator=(const Uri& _rhs);
23 ~Uri();
28 static Uri createUnique(const QStringList& _path = QStringList());
29
30 bool operator==(const Uri& _rhs) const;
31 bool operator==(const char* _rhs) const;
32 bool operator<(const Uri& _rhs) const;
33 bool operator!=(const Uri& _rhs) const { return !(*this == _rhs); }
34 bool operator!=(const char* _rhs) const { return !(*this == _rhs); }
35
36 operator QUrl() const;
37 operator QString() const;
38
39 bool isEmpty() const;
40 bool isAbsolute() const;
41 bool isUrn() const;
42 bool isUrl() const;
43
44 Uri resolved(const Uri& _url) const;
45 Uri resolved(const QString& _url) const;
46
47 static void
48 registerLocalFileResolver(const QString& _scheme,
49 const std::function<QString(const QUrl& _url)>& _resolver);
50 QString toLocalFile() const;
54 QString base() const;
55 private:
56 struct Private;
57 QSharedDataPointer<Private> d;
58 };
59 inline uint qHash(const Uri& key, std::size_t seed = 0) { return qHash((QString)key, seed); }
60} // namespace knowCore
61
62inline knowCore::Uri operator"" _kCu(const char* _text, std::size_t)
63{
64 return knowCore::Uri(_text);
65}
66
67Q_DECLARE_METATYPE(knowCore::Uri)
68
69#include "Formatter.h"
70clog_format_declare_cast_formatter(knowCore::Uri, QString);
71
72#endif
Definition Uri.h:15
QString base() const
Definition Uri.cpp:112
static Uri createUnique(const QStringList &_path=QStringList())
Definition Uri.cpp:48
Definition Uri.cpp:12