84 lines
2.5 KiB
C++
84 lines
2.5 KiB
C++
#ifndef CLIENT_H
|
|
#define CLIENT_H
|
|
|
|
#include <QObject>
|
|
#include <QSslSocket>
|
|
#include <QHash>
|
|
|
|
#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<QString, QList<MessageHandler*> > _message_handlers;
|
|
};
|
|
|
|
#endif // CLIENT_H
|