aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/commands.h
diff options
context:
space:
mode:
authorGravatar Attila Molnar2015-01-09 14:56:28 +0100
committerGravatar Attila Molnar2015-01-09 14:56:28 +0100
commita0c90ee606ad4ddc49440a5157a13d4ab6f54e2b (patch)
tree3b79a02963d73a3e6349cebcbac5637a6d6a1961 /src/modules/m_spanningtree/commands.h
parentm_spanningtree Add CmdBuilder::push_raw() overload for ranges (diff)
m_spanningtree Add overload for add() and has_room(), giving more flexibility to subclasses of CommandFJoin::Builder
Diffstat (limited to 'src/modules/m_spanningtree/commands.h')
-rw-r--r--src/modules/m_spanningtree/commands.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/modules/m_spanningtree/commands.h b/src/modules/m_spanningtree/commands.h
index c0043f0a4..d901d69e0 100644
--- a/src/modules/m_spanningtree/commands.h
+++ b/src/modules/m_spanningtree/commands.h
@@ -143,10 +143,22 @@ class CommandFJoin : public ServerCommand
static const size_t maxline = 480;
std::string::size_type pos;
+ protected:
+ void add(Membership* memb, std::string::const_iterator mbegin, std::string::const_iterator mend);
+ bool has_room(std::string::size_type nummodes) const;
+
public:
Builder(Channel* chan, TreeServer* source = Utils->TreeRoot);
- void add(Membership* memb);
- bool has_room(Membership* memb) const;
+ void add(Membership* memb)
+ {
+ add(memb, memb->modes.begin(), memb->modes.end());
+ }
+
+ bool has_room(Membership* memb) const
+ {
+ return has_room(memb->modes.size());
+ }
+
void clear();
const std::string& finalize();
};