modernize: Pass arguments by value and move in constructors
[quassel.git] / src / common / coreinfo.h
index 16df957..17db3cb 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   Copyright (C) 2005-2018 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef COREINFO_H
-#define COREINFO_H
+#pragma once
+
+#include "common-export.h"
 
 #include "syncableobject.h"
 
 /*
- * gather various informations about the core.
+ * gather various information about the core.
  */
 
-class CoreInfo : public SyncableObject
+class COMMON_EXPORT CoreInfo : public SyncableObject
 {
     Q_OBJECT
+    SYNCABLE_OBJECT
 
-    Q_PROPERTY(QVariantMap coreData READ coreData WRITE setCoreData STORED false)
+    Q_PROPERTY(QVariantMap coreData READ coreData WRITE setCoreData)
 
-public :
-        CoreInfo(QObject *parent = 0) : SyncableObject(parent) {}
+public:
+    explicit CoreInfo(QObject *parent = nullptr);
+    inline QVariant &at(const QString &key) { return _coreData[key]; }
 
-public slots:
-    virtual inline QVariantMap coreData() const { return QVariantMap(); }
-    virtual inline void setCoreData(const QVariantMap &) {}
-};
+    void setConnectedClientData(int, QVariantList);
+
+    /**
+     * Reset the core info state, clearing anything saved
+     */
+    void reset();
 
+signals:
+    /**
+     * Signals that core information has changed
+     */
+    void coreDataChanged(QVariantMap);
 
-#endif //COREINFO_H
+public slots:
+    QVariantMap coreData() const;
+    void setCoreData(const QVariantMap &);
+
+private:
+    QVariantMap _coreData;
+};