Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/core
diff options
context:
space:
mode:
Diffstat (limited to 'source/core')
-rw-r--r--source/core/StarDirectives.cpp41
-rw-r--r--source/core/StarDirectives.hpp5
2 files changed, 36 insertions, 10 deletions
diff --git a/source/core/StarDirectives.cpp b/source/core/StarDirectives.cpp
index 4db3837..6c335a5 100644
--- a/source/core/StarDirectives.cpp
+++ b/source/core/StarDirectives.cpp
@@ -50,6 +50,7 @@ Directives::Shared::Shared(List<Entry>&& givenEntries, String&& givenString, Str
}
Directives::Directives() {}
+
Directives::Directives(String const& directives) {
parse(String(directives));
}
@@ -62,29 +63,49 @@ Directives::Directives(const char* directives) {
parse(directives);
}
-Directives& Directives::operator=(String const& directives) {
- if (shared && shared->string == directives)
+Directives::Directives(Directives&& directives) {
+ *this = move(directives);
+}
+
+Directives::Directives(Directives const& directives) {
+ *this = directives;
+}
+
+Directives::~Directives() {}
+
+Directives& Directives::operator=(String const& s) {
+ if (shared && shared->string == s)
return *this;
- parse(String(directives));
+ parse(String(s));
return *this;
}
-Directives& Directives::operator=(String&& directives) {
- if (shared && shared->string == directives) {
- directives.clear();
+Directives& Directives::operator=(String&& s) {
+ if (shared && shared->string == s) {
+ s.clear();
return *this;
}
- parse(move(directives));
+ parse(move(s));
return *this;
}
-Directives& Directives::operator=(const char* directives) {
- if (shared && shared->string.utf8().compare(directives) == 0)
+Directives& Directives::operator=(const char* s) {
+ if (shared && shared->string.utf8().compare(s) == 0)
return *this;
- parse(directives);
+ parse(s);
+ return *this;
+}
+
+Directives& Directives::operator=(Directives&& other) {
+ shared = move(other.shared);
+ return *this;
+}
+
+Directives& Directives::operator=(Directives const& other) {
+ shared = other.shared;
return *this;
}
diff --git a/source/core/StarDirectives.hpp b/source/core/StarDirectives.hpp
index d15d095..b7575ed 100644
--- a/source/core/StarDirectives.hpp
+++ b/source/core/StarDirectives.hpp
@@ -44,10 +44,15 @@ public:
Directives(String const& directives);
Directives(String&& directives);
Directives(const char* directives);
+ Directives(Directives const& directives);
+ Directives(Directives&& directives);
+ ~Directives();
Directives& operator=(String const& s);
Directives& operator=(String&& s);
Directives& operator=(const char* s);
+ Directives& operator=(Directives&& other);
+ Directives& operator=(Directives const& other);
void loadOperations() const;
void parse(String&& directives);