After quite a while, we have another big SVN update now.
[quassel.git] / core / core.h
index 4220056..b2a3125 100644 (file)
 #include <QString>
 #include <QVariant>
 
-typedef QMap<QString, QVariant> VarMap;
+#include "server.h"
 
-class Core {
+class Core : public QObject {
+  Q_OBJECT
 
   public:
-    static void init();
-    static VarMap loadNetworks();
-    static void storeNetworks(VarMap);
-    static VarMap loadIdentities();
-    static void storeIdentities(VarMap);
+
+    Core();
+    ~Core();
+    QHash<QString, QList<Message> > getBackLog() { return backLog; };
+
+  public slots:
+    void connectToIrc(QStringList);
+
+  signals:
+    void msgFromGUI(QString network, QString channel, QString message);
+    void displayMsg(QString network, Message message);
+    void displayStatusMsg(QString, QString);
+
+    void connectToIrc(QString net);
+    void disconnectFromIrc(QString net);
+    void serverStateRequested();
+
+  private slots:
+    //void serverStatesRequested();
+    void globalDataUpdated(QString);
+    void recvStatusMsgFromServer(QString msg);
+    void recvMessageFromServer(Message msg);
+    void serverDisconnected(QString net);
+
+  private:
+    QDir backLogDir;
+    bool backLogEnabled;
+    QHash<QString, Server *> servers;
+    QHash<QString, QList<Message> > backLog;
+    //QHash<QString, int> netIdx;
+    QHash<QString, QFile *> logFiles;
+    QHash<QString, QDataStream *> logStreams;
+    QHash<QString, QDate> logFileDates;
+    QHash<QString, QDir> logFileDirs;
+
+    //uint getNetIdx(QString net);
+    void initBackLog();
+    void logMessage(QString, Message);
 
 };
 
+extern Core *core;
+
 #endif