ProtocolInterface(InspIRCd* Instance) : ServerInstance(Instance) { }
virtual ~ProtocolInterface() { }
- /** Generate an ENCAP message.
+ /** Send an ENCAP message to one or more linked servers.
* See the protocol documentation for the purpose of ENCAP.
* @param encap This is a list of string parameters, the first of which must be a server ID or glob matching servernames.
* The second must be a subcommand. All subsequent parameters are dependant on the subcommand.
*/
virtual void SendEncapsulatedData(parameterlist &encap) { }
+ /** Send metadata for an object to other linked servers.
+ * @param target The object to send metadata for.
+ * @param type The type of metadata to send (TYPE_USER, TYPE_CHANNEL, etc)
+ * @param key The 'key' of the data, e.g. "swhois" for swhois desc on a user
+ * @param data The string representation of the data
+ */
virtual void SendMetaData(void* target, int type, const std::string &key, const std::string &data) { }
+ /** Send a topic change for a channel
+ * @param channel The channel to change the topic for.
+ * @param topic The new topic to use for the channel.
+ */
virtual void SendTopic(Channel* channel, std::string &topic) { }
+ /** Send mode changes for an object.
+ * @param target The channel name or user to send mode changes for.
+ * @param The mode changes to send.
+ */
virtual void SendMode(const std::string &target, parameterlist &modedata) { }
+ /** Convenience function, string wrapper around the above.
+ */
virtual void SendModeStr(const std::string &target, const std::string &modeline)
{
- /* Convenience function */
irc::spacesepstream x(modeline);
parameterlist n;
std::string v;