Public feed #890977

Miscellany

public text v1 · immutable
Raw Edit
·published 2008-02-04 06:34 UTC
rendered paste body
#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