aboutsummaryrefslogtreecommitdiff
path: root/src/extensible.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2019-08-13 18:59:24 +0100
committerGravatar Sadie Powell2019-08-13 19:08:17 +0100
commiteeb6dcec601271badd27ad1c0558764ca5789d64 (patch)
treee5cde71a4cf061076a217a67d48b59830e84c223 /src/extensible.cpp
parentRewrite and merge LocalStringExt, StringExtItem. (diff)
Replace LocalIntExt with IntExtItem.
Diffstat (limited to 'src/extensible.cpp')
-rw-r--r--src/extensible.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/extensible.cpp b/src/extensible.cpp
index 7cf0006f4..2b657e1a3 100644
--- a/src/extensible.cpp
+++ b/src/extensible.cpp
@@ -19,6 +19,55 @@
#include "inspircd.h"
+IntExtItem::IntExtItem(Module* owner, const std::string& key, ExtensibleType exttype, bool sync)
+ : ExtensionItem(owner, key, exttype)
+ , synced(sync)
+{
+}
+
+void IntExtItem::Delete(Extensible* container, void* item)
+{
+ // Intentionally left blank.
+}
+
+void IntExtItem::FromInternal(Extensible* container, const std::string& value)
+{
+ set(container, ConvToNum<intptr_t>(value));
+}
+
+void IntExtItem::FromNetwork(Extensible* container, const std::string& value)
+{
+ if (synced)
+ FromInternal(container, value);
+}
+
+intptr_t IntExtItem::get(const Extensible* container) const
+{
+ return reinterpret_cast<intptr_t>(get_raw(container));
+}
+
+void IntExtItem::set(Extensible* container, intptr_t value)
+{
+ if (value)
+ set_raw(container, reinterpret_cast<void*>(value));
+ else
+ unset_raw(container);
+}
+
+std::string IntExtItem::ToInternal(const Extensible* container, void* item) const
+{
+ return ConvToStr(reinterpret_cast<intptr_t>(item));
+}
+
+std::string IntExtItem::ToNetwork(const Extensible* container, void* item) const
+{
+ return synced ? ToInternal(container, item) : std::string();
+}
+
+void IntExtItem::unset(Extensible* container)
+{
+ unset_raw(container);
+}
StringExtItem::StringExtItem(Module* owner, const std::string& key, ExtensibleType exttype, bool sync)
: SimpleExtItem(owner, key, exttype)