Automatically synchronize CoreInfo when on connect and disconnect
[quassel.git] / src / common / coreinfo.cpp
similarity index 72%
rename from src/core/corecoreinfo.h
rename to src/common/coreinfo.cpp
index 991ebf9..e4019c7 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef CORECOREINFO_H
-#define CORECOREINFO_H
-
 #include "coreinfo.h"
 
-class CoreSession;
+INIT_SYNCABLE_OBJECT(CoreInfo)
+CoreInfo::CoreInfo(QObject *parent) : SyncableObject(parent) {}
 
-/*
- * Yes this name is somewhat stupid... but it fits the general naming scheme
- * which is prefixing core specific sync objects with "Core"... ;)
- */
-class CoreCoreInfo : public CoreInfo
+QVariantMap CoreInfo::coreData() const
 {
-    SYNCABLE_OBJECT
-        Q_OBJECT
-
-public:
-    CoreCoreInfo(CoreSession *parent);
-
-    inline virtual const QMetaObject *syncMetaObject() const { return &CoreInfo::staticMetaObject; }
-
-public slots:
-    virtual QVariantMap coreData() const;
-
-private:
-    CoreSession *_coreSession;
-};
+    return _coreData;
+}
 
+void CoreInfo::setCoreData(const QVariantMap &coreData)
+{
+    _coreData = coreData;
+    SYNC(ARG(coreData));
+    emit coreDataChanged(coreData);
+}
 
-#endif //CORECOREINFO_H
+void CoreInfo::setConnectedClientData(const int peerCount, const QVariantList peerData)
+{
+    _coreData["sessionConnectedClients"] = peerCount;
+    _coreData["sessionConnectedClientData"] = peerData;
+    setCoreData(_coreData);
+}