#ifndef CLIENT_H #define CLIENT_H #include #include #include #include "messagehandler.h" #include "message.h" #include "hostmask.h" class Client : public QObject { Q_OBJECT public: Client(QObject *parent = 0); ~Client(); void connectToServer(); void setNickname(const QString& nickname); void setRealname(const QString& realname); void setUsername(const QString& username); QString getNickname() const; QString getUsername() const; QString getRealname() const; void setServerHostname(const QString& hostname); void setServerPort(quint16 port); QString getServerHostname() const; quint16 getServerPort() const; void registerMessageHandler(const QString& command, MessageHandler* handler); void sendNick(const QString& nickname); void sendUser(const QString& username, const QString& realname, const QString& hostname); void sendJoin(const QString& channel); void sendQuit(const QString& message); void sendPong(const QString& message); void sendRaw(const QString& message); void sendPrivmsg(const QString& target, const QString& text); void didReceivePrivmsg(const Hostmask& hostmask, const QString& target, const QString& text); void didReceiveNamesList(const QString& text); void didReceiveJoinMsg(const Hostmask& hostmask, const QString& target, const QString& text); void didReceiveQuitMsg(const Hostmask &hostmask, const QString &target, const QString& text); void didReceiveTopic(const Hostmask &hostmask, const QString &target, const QString& text); signals: void ReceivedMessage(const Message& message); void Connected(); void PrivmsgReceived(const Hostmask& hostmask, const QString& target, const QString& text); void NamesListReceived(const QString& text); void JoinMsgReceived(const Hostmask& hostmask, const QString& target, const QString& text); void QuitMsgReceived(const Hostmask& hostmask, const QString& target, const QString& text); void TopicReceived(const Hostmask& hostmask, const QString& target, const QString& text); private slots: void readData(); void connectionEstablished(); void dispatchMessage(const Message& message); private: void writeLine(const QString& line); QString _nickname; QString _username; QString _realname; QString _server_hostname; int _server_port; QSslSocket *_socket; QHash > _message_handlers; }; #endif // CLIENT_H