+ /** Initialise utility class
+ */
+ SpanningTreeUtilities(InspIRCd* Instance, ModuleSpanningTree* Creator);
+ /** Destroy class and free listeners etc
+ */
+ ~SpanningTreeUtilities();
+ /** Send a message from this server to one other local or remote
+ */
+ bool DoOneToOne(const std::string &prefix, const std::string &command, std::deque<std::string> ¶ms, std::string target);
+ /** Send a message from this server to all but one other, local or remote
+ */
+ bool DoOneToAllButSender(const std::string &prefix, const std::string &command, std::deque<std::string> ¶ms, std::string omit);
+ /** Send a message from this server to all but one other, local or remote
+ */
+ bool DoOneToAllButSender(const char* prefix, const char* command, std::deque<std::string> ¶ms, std::string omit);
+ /** Send a message from this server to all others
+ */
+ bool DoOneToMany(const std::string &prefix, const std::string &command, std::deque<std::string> ¶ms);
+ /** Send a message from this server to all others
+ */
+ bool DoOneToMany(const char* prefix, const char* command, std::deque<std::string> ¶ms);
+ /** Send a message from this server to all others, without doing any processing on the command (e.g. send it as-is with colons and all)
+ */
+ bool DoOneToAllButSenderRaw(const std::string &data, const std::string &omit, const std::string &prefix, const irc::string &command, std::deque<std::string> ¶ms);
+ /** Read the spanningtree module's tags from the config file
+ */
+ void ReadConfiguration(bool rebind);
+ /** Add a server to the server list for GetListOfServersForChannel
+ */
+ void AddThisServer(TreeServer* server, std::deque<TreeServer*> &list);
+ /** Compile a list of servers which contain members of channel c
+ */
+ void GetListOfServersForChannel(chanrec* c, std::deque<TreeServer*> &list);
+ /** Find a server by name
+ */
+ TreeServer* FindServer(const std::string &ServerName);
+ /** Find a route to a server by name
+ */
+ TreeServer* BestRouteTo(const std::string &ServerName);
+ /** Find a server by glob mask
+ */
+ TreeServer* FindServerMask(const std::string &ServerName);
+ /** Returns true if this is a server name we recognise
+ */
+ bool IsServer(const std::string &ServerName);
+ /** Attempt to connect to the failover link of link x
+ */
+ void DoFailOver(Link* x);
+ /** Find a link tag from a server name
+ */
+ Link* FindLink(const std::string& name);