#ifndef IRCCONNECTION_HPP #define IRCCONNECTION_HPP #include #include #include #include #include #include #include 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 OnPing; void parsePing(IrcNick*,string); Signal3 OnPrivMsg; void parsePrivMsg(IrcNick*,string); Signal3 OnMode; void parseMode(IrcNick*,string); Signal3 OnJoin; void parseJoin(IrcNick*,string); Signal3 OnPart; void parsePart(IrcNick*,string); Signal3 OnNick; void parseNick(IrcNick*,string); Signal3 OnQuit; Signal3 OnRegister; Signal3 Drop; Signal3 WhoisReply; Signal2 GotPrivMsg; void parseNames(IrcNick*,string); void DoPing(IrcConnection * t,IrcNick * n, string s) { pong(s); }; bool registered; vector channels; IrcChannel * getChanByName(string name); vector nicks; IrcNick * getNick(); string getName() { return _name; }; string _name; static IrcConnection * getConnectionByName(string name); static vector ircconnections; string _username; string _realname; private: string _nick; }; #endif