From eeb6dcec601271badd27ad1c0558764ca5789d64 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Tue, 13 Aug 2019 18:59:24 +0100 Subject: Replace LocalIntExt with IntExtItem. --- src/extensible.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'src/extensible.cpp') 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(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(get_raw(container)); +} + +void IntExtItem::set(Extensible* container, intptr_t value) +{ + if (value) + set_raw(container, reinterpret_cast(value)); + else + unset_raw(container); +} + +std::string IntExtItem::ToInternal(const Extensible* container, void* item) const +{ + return ConvToStr(reinterpret_cast(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) -- cgit v1.3.1-10-gc9f91