From 4cfc311591fb62c398b273ef2311a855c9fab3d9 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Mon, 31 Jan 2022 05:16:36 +0000 Subject: Slim down the protocol interface for sending metadata. --- src/modules/m_spanningtree/metadata.cpp | 48 ++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 21 deletions(-) (limited to 'src/modules/m_spanningtree/metadata.cpp') diff --git a/src/modules/m_spanningtree/metadata.cpp b/src/modules/m_spanningtree/metadata.cpp index 9a21076f9..2119fae3e 100644 --- a/src/modules/m_spanningtree/metadata.cpp +++ b/src/modules/m_spanningtree/metadata.cpp @@ -110,31 +110,37 @@ CmdResult CommandMetadata::Handle(User* srcuser, Params& params) return CmdResult::SUCCESS; } -CommandMetadata::Builder::Builder(const User* user, const std::string& key, const std::string& val) +CommandMetadata::Builder::Builder(const Extensible* ext, const std::string& key, const std::string& val) : CmdBuilder("METADATA") { - push(user->uuid); - push(key); - push_last(val); -} + switch (ext->extype) + { + case ExtensionType::CHANNEL: + { + const Channel* chan = static_cast(ext); + push(chan->name); + push_int(chan->age); + break; + } -CommandMetadata::Builder::Builder(const Channel* chan, const std::string& key, const std::string& val) - : CmdBuilder("METADATA") -{ - push(chan->name); - push_int(chan->age); - push(key); - push_last(val); -} + case ExtensionType::MEMBERSHIP: + { + const Membership* memb = static_cast(ext); + push_raw("@"); + push(memb->user->uuid); + push_raw(memb->chan->name); + push_int(memb->chan->age); + push_int(memb->id); + break; + } -CommandMetadata::Builder::Builder(const Membership* memb, const std::string& key, const std::string& val) - : CmdBuilder("METADATA") -{ - push_raw("@"); - push(memb->user->uuid); - push_raw(memb->chan->name); - push_int(memb->chan->age); - push_int(memb->id); + case ExtensionType::USER: + { + const User* user = static_cast(ext); + push(user->uuid); + break; + } + } push(key); push_last(val); } -- cgit v1.3.1-10-gc9f91