squawk/core/squawk.h

59 lines
1.5 KiB
C
Raw Normal View History

2019-03-29 14:54:34 +00:00
#ifndef CORE_SQUAWK_H
#define CORE_SQUAWK_H
#include <QtCore/QObject>
2019-03-30 20:13:13 +00:00
#include <QString>
#include <QVariant>
#include <QMap>
2019-03-29 14:54:34 +00:00
#include <deque>
#include <deque>
2019-03-29 14:54:34 +00:00
#include "account.h"
#include "../global.h"
2019-03-29 14:54:34 +00:00
namespace Core
{
class Squawk : public QObject
{
Q_OBJECT
public:
Squawk(QObject* parent = 0);
~Squawk();
2019-03-30 20:13:13 +00:00
signals:
void quit();
2019-03-30 20:13:13 +00:00
void newAccount(const QMap<QString, QVariant>&);
void accountConnectionStateChanged(const QString&, int);
2019-04-03 21:23:51 +00:00
void addGroup(const QString& account, const QString& name);
void removeGroup(const QString& account, const QString& name);
void addContact(const QString& account, const QString& jid, const QString& name, const QString& group);
2019-03-30 20:13:13 +00:00
public slots:
void start();
void stop();
2019-03-30 20:13:13 +00:00
void newAccountRequest(const QMap<QString, QVariant>& map);
void connectAccount(const QString& account);
void disconnectAccount(const QString& account);
2019-03-30 20:13:13 +00:00
2019-03-29 14:54:34 +00:00
private:
2019-03-30 20:13:13 +00:00
typedef std::deque<Account*> Accounts;
typedef std::map<QString, Account*> AccountsMap;
2019-03-29 14:54:34 +00:00
Accounts accounts;
AccountsMap amap;
2019-03-30 20:13:13 +00:00
private:
void addAccount(const QString& login, const QString& server, const QString& password, const QString& name);
private slots:
void onAccountConnectionStateChanged(int state);
2019-04-03 21:23:51 +00:00
void onAccountAddGroup(const QString& name);
void onAccountRemoveGroup(const QString& name);
void onAccountAddContact(const QString& jid, const QString& name, const QString& group);
2019-03-29 14:54:34 +00:00
};
}
#endif // CORE_SQUAWK_H