From dacd393fefeabafd1306533dd6c5a56e0ab347cc Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Sun, 27 Feb 2011 18:48:35 +0100 Subject: Initial commit --- TConnection.h | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 TConnection.h (limited to 'TConnection.h') diff --git a/TConnection.h b/TConnection.h new file mode 100644 index 0000000..b89da8c --- /dev/null +++ b/TConnection.h @@ -0,0 +1,114 @@ +#ifndef _TCONNECTION_H_ +#define _TCONNECTION_H_ + +#include "mytypes.h" +#include "myfuncs.h" + +#include "TConnectionInterface.h" +#include "TPluginParent.h" + +#include "TPlugin.h" + +#include "TSession.h" +#include "TChannel.h" + +class TSession; +class TChannel; + +class TConnection : public TPluginParent, public TConnectionInterface +{ + public: + TConnection(string server, string nicklist, char comchar_); + ~TConnection(); + + virtual void send (string line); + virtual void send_raw (string line); + static ircmessage parseline (string line); +// static string cut_nick (string nick1); + virtual string get_nick(); + + void exec_plugins(list plugins); + + virtual string get_name(); + virtual string get_networkname(); + static string get_networkname(string s_name); + string get_connectname(); + + //virtual string get_ournick(); + + //virtual void pluginsend(string what); + //virtual TConnection* get_parent(); + + void addplugincontext(TPlugin* plugin); + void removeplugincontext(int x); + void zerocurrmsg(); + + void loadlists(); + void savelists(); + + virtual void addmaster(string nick, string pass); + virtual void adduser(string nick, string pass); + + virtual void delmaster(string nick); + virtual void deluser(string nick); + + virtual bool ismaster(string nick); + virtual bool isuser(string nick); + virtual bool isinchan(string nick,string chan); + + virtual TUserList get_masterlist(); + virtual TUserList get_userlist(); + virtual TUserList get_channel_users(string chan); + + virtual string get_channel_topic(string chan); + virtual string get_channel_modes(string chan); + + virtual void quit(string reason); + + ircmessage get_curr_msg(); + //string get_curr_msg(); + bool next_message(); + + void check_session_timeouts(); + + void logout_all(); + + bool valid(); + void check_timeout(); + + virtual int get_type(); + + virtual void communicate(string subject, void *data); + virtual void say (string what); + + bool dontreconnect; + char comchar; + + private: + void connect(string* server); + void disconnect (); + void register_client(string nicks); + + string getline(); + void interpret_message(ircmessage msg); + + int sock; + struct sockaddr_in addr; + struct hostent* hent; + char* buf; + string nick; + list chans; + list sessions; + TUserList masters, masters_li; + TUserList users, users_li; + string sname; + string connectname; + ircmessage curr_msg; + time_t last_recv; + time_t last_ping; + bool expecting_pong; + string newline; +}; + + +#endif -- cgit v1.2.1