<commit_before>#pragma once
#include "../main.h"
#include "../modulemanager.h"
#include "../socketmanager.h"

class ClientProtocol {
	public:
		ClientProtocol(const std::string& name) : serverName(name) {}
		virtual ~ClientProtocol() {}
		virtual unsigned int apiVersion() = 0;
		void pointManagers(ModuleManager* mm, SocketManager* sm) { modmanager = mm; sockmanager = sm; }
		virtual void connectServer() {}
		virtual bool connected() { return false; }
		virtual bool shouldUnload() { return true; }
		virtual void disconnect() {}
		
		virtual void sendMsg(const std::string& client, const std::string& target, const std::string& message, const std::map<std::string, std::string>& tags) {}
		virtual void sendNotice(const std::string& client, const std::string& target, const std::string& message, const std::map<std::string, std::string>& tags) {}
		virtual void setMode(const std::string& client, const std::string& target, const std::list<std::tuple<bool, std::string, std::string>>& modes, const std::map<std::string, std::string>& tags) {}
		virtual void joinChan(const std::string& client, const std::string& channel, const std::string& key, const std::map<std::string, std::string>& tags) {}
		virtual void partChan(const std::string& client, const std::string& channel, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void kickUser(const std::string& client, const std::string& channel, const std::string& user, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void setTopic(const std::string& client, const std::string& channel, const std::string& topic, const std::map<std::string, std::string>& tags) {}
		virtual void inviteUser(const std::string& client, const std::string& channel, const std::string& user, const std::map<std::string, std::string>& tags) {}
		virtual void knock(const std::string& client, const std::string& channel, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void changeNick(const std::string& client, const std::string& newNick, const std::map<std::string, std::string>& tags) {}
		virtual void sendPing(const std::string& data, const std::map<std::string, std::string>& tags) {}
		virtual void setAway(const std::string& client, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void setUnaway(const std::string& client, const std::map<std::string, std::string>& tags) {}
		virtual void oper(const std::string& client, const std::string& username, const std::string& password, const std::map<std::string, std::string>& tags) {}
		virtual void sendWallops(const std::string& client, const std::string& message, const std::map<std::string, std::string>& tags) {}
		virtual void sendOtherData(const std::string& client, const IRCMessage* line) {}
		
		virtual std::string addClient(const std::string& nick, const std::string& ident, const std::string& gecos) { return ""; }
		virtual void removeClient(const std::string& client) {}
		<commit_msg>Add the client parameter to sendPing in the ClientProtocol<commit_after>#pragma once
#include "../main.h"
#include "../modulemanager.h"
#include "../socketmanager.h"

class ClientProtocol {
	public:
		ClientProtocol(const std::string& name) : serverName(name) {}
		virtual ~ClientProtocol() {}
		virtual unsigned int apiVersion() = 0;
		void pointManagers(ModuleManager* mm, SocketManager* sm) { modmanager = mm; sockmanager = sm; }
		virtual void connectServer() {}
		virtual bool connected() { return false; }
		virtual bool shouldUnload() { return true; }
		virtual void disconnect() {}
		
		virtual void sendMsg(const std::string& client, const std::string& target, const std::string& message, const std::map<std::string, std::string>& tags) {}
		virtual void sendNotice(const std::string& client, const std::string& target, const std::string& message, const std::map<std::string, std::string>& tags) {}
		virtual void setMode(const std::string& client, const std::string& target, const std::list<std::tuple<bool, std::string, std::string>>& modes, const std::map<std::string, std::string>& tags) {}
		virtual void joinChan(const std::string& client, const std::string& channel, const std::string& key, const std::map<std::string, std::string>& tags) {}
		virtual void partChan(const std::string& client, const std::string& channel, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void kickUser(const std::string& client, const std::string& channel, const std::string& user, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void setTopic(const std::string& client, const std::string& channel, const std::string& topic, const std::map<std::string, std::string>& tags) {}
		virtual void inviteUser(const std::string& client, const std::string& channel, const std::string& user, const std::map<std::string, std::string>& tags) {}
		virtual void knock(const std::string& client, const std::string& channel, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void changeNick(const std::string& client, const std::string& newNick, const std::map<std::string, std::string>& tags) {}
		virtual void sendPing(const std::string& client, const std::string& data, const std::map<std::string, std::string>& tags) {}
		virtual void setAway(const std::string& client, const std::string& reason, const std::map<std::string, std::string>& tags) {}
		virtual void setUnaway(const std::string& client, const std::map<std::string, std::string>& tags) {}
		virtual void oper(const std::string& client, const std::string& username, const std::string& password, const std::map<std::string, std::string>& tags) {}
		virtual void sendWallops(const std::string& client, const std::string& message, const std::map<std::string, std::string>& tags) {}
		virtual void sendOtherData(const std::string& client, const IRCMessage* line) {}
		
		virtual std::string addClient(const std::string& nick, const std::string& ident, const std::string& gecos) { return ""; }
		virtual void removeClient(const std::string& client) {}
		
{'fraction_non_alphanumeric': 0.15957101072473187, 'fraction_numerical': 0.00032499187520311994, 'mean_word_length': 6.771464646464646, 'pattern_counts': {'":': 0, '<': 37, '<?xml version=': 0, '>': 37, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7195249', 'n_tokens_mistral': 1831, 'n_tokens_neox': 1751, 'n_words': 573}