Public feed
#890977
#ifndef IRCCONNECTION_HPP
#define IRCCONNECTION_HPP
#include <iostream>
#include <vector>
#include <string>
#include <sigc++/signal_system.h>
#include <tinyxml.h>
#include <ClientSocket.hpp>
#include <IrcNick.hpp>
using namespace SigC;
class IrcChannel;
class IrcConnection : public Object, ClientSocket
{
public:
IrcConnection();
void initFromXml(TiXmlElement*);
void connect(string server, int port, string nick);
void user(string username, string realname);
void nick(string nick);
void pong(string text);
void privmsg(IrcNick * to, string text);
void privmsg(IrcChannel * to, string text);
void join(string channel);
void part(string channel);
void whois(string nick);
void Op(IrcChannel * chan, IrcNick * nick);
void deOp(IrcChannel * chan, IrcNick * nick);
void Voice(IrcChannel * chan, IrcNick * nick);
void deVoice(IrcChannel * chan, IrcNick * nick);
virtual void OnClose();
virtual void OnConnect();
virtual void OnRead();
virtual void OnWrite();
virtual void OnExcept();
Signal3<void,IrcConnection*,IrcNick*,string> OnPing;
void parsePing(IrcNick*,string);
Signal3<void,IrcConnection*,IrcNick*,string> OnPrivMsg;
void parsePrivMsg(IrcNick*,string);
Signal3<void,IrcConnection*,IrcNick*,string> OnMode;
void parseMode(IrcNick*,string);
Signal3<void,IrcConnection*,IrcNick*,IrcChannel*> OnJoin;
void parseJoin(IrcNick*,string);
Signal3<void,IrcConnection*,IrcNick*,IrcChannel*> OnPart;
void parsePart(IrcNick*,string);
Signal3<void,IrcConnection*,IrcNick*,string> OnNick;
void parseNick(IrcNick*,string);
Signal3<void,IrcConnection*,IrcNick*,string> OnQuit;
Signal3<void,IrcConnection*,IrcNick*,string> OnRegister;
Signal3<void,IrcConnection*,IrcNick*,string> Drop;
Signal3<void,IrcConnection*,IrcNick*,string> WhoisReply;
Signal2<void,IrcNick*,string> GotPrivMsg;
void parseNames(IrcNick*,string);
void DoPing(IrcConnection * t,IrcNick * n, string s) { pong(s); };
bool registered;
vector<IrcChannel *> channels;
IrcChannel * getChanByName(string name);
vector<IrcNick *> nicks;
IrcNick * getNick();
string getName() { return _name; };
string _name;
static IrcConnection * getConnectionByName(string name);
static vector<IrcConnection*> ircconnections;
string _username;
string _realname;
private:
string _nick;
};
#endif