Added uint networkId() to BufferIds.
[quassel.git] / src / common / global.cpp
index b92f795..ed2d1df 100644 (file)
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
+#include <QObject>
+#include <QStringList>
 
 #include "global.h"
 #include "logger.h"
-#include "core.h"
 #include "message.h"
 #include "util.h"
 
-#include <QtCore>
-#include <QDomDocument>
-
 extern void messageHandler(QtMsgType type, const char *msg);
 
-Global *Global::instanceptr = 0;
-
-Global * Global::instance() {
-  if(instanceptr) return instanceptr;
-  return instanceptr = new Global();
-}
-
-void Global::destroy() {
-  delete instanceptr;
-  instanceptr = 0;
-}
-
-Global::Global() {
-  qInstallMsgHandler(messageHandler);
-  qRegisterMetaType<Message>("Message");
-  qRegisterMetaTypeStreamOperators<Message>("Message");
-  qRegisterMetaType<BufferId>("BufferId");
-  qRegisterMetaTypeStreamOperators<BufferId>("BufferId");
-
-  guiUser = 0;
-}
-
-Global::~Global() {
-
-
-}
-
-void Global::setGuiUser(UserId uid) {
-  guiUser = uid;
-}
-
-QVariant Global::data(QString key, QVariant defval) {
-  return data(guiUser, key, defval);
-}
-
-QVariant Global::data(UserId uid, QString key, QVariant defval) {
-  QVariant d;
-  mutex.lock();
-  if(instance()->datastore[uid].contains(key)) d = instance()->datastore[uid][key];
-  else d = defval;
-  mutex.unlock();
-  //qDebug() << "getData("<<key<<"): " << d;
-  return d;
-}
-
-QStringList Global::keys() {
-  return keys(guiUser);
-}
-
-QStringList Global::keys(UserId uid) {
-  QStringList k;
-  mutex.lock();
-  k = instance()->datastore[uid].keys();
-  mutex.unlock();
-  return k;
-}
-
-void Global::putData(QString key, QVariant d) {
-  putData(guiUser, key, d);
-}
-
-void Global::putData(UserId uid, QString key, QVariant d) {
-  mutex.lock();
-  instance()->datastore[uid][key] = d;
-  mutex.unlock();
-  emit instance()->dataPutLocally(uid, key);
-}
-
-void Global::updateData(QString key, QVariant d) {
-  updateData(guiUser, key, d);
-}
-
-void Global::updateData(UserId uid, QString key, QVariant d) {
-  mutex.lock();
-  instance()->datastore[uid][key] = d;
-  mutex.unlock();
-  emit instance()->dataUpdatedRemotely(uid, key);
-}
-
 /* not done yet */
 /*
 void Global::initIconMap() {
@@ -128,33 +47,44 @@ void Global::initIconMap() {
 */
 
 /**************************************************************************************/
+BufferId::BufferId()
+  : _id(0),
+    _netid(0),
+    _gid(0),
+    _networkName(QString()),
+    _bufferName(QString()) {
+}
 
-
-
-BufferId::BufferId(uint _id, QString _net, QString _buf, uint _gid) : id(_id), gid(_gid), net(_net), buf(_buf) {
-
-
+BufferId::BufferId(uint id, uint networkid, uint gid, QString net, QString buf)
+  : _id(id),
+    _netid(networkid),
+    _gid(gid),
+    _networkName(net),
+    _bufferName(buf) {
 }
 
 QString BufferId::buffer() const {
-  if(isChannelName(buf)) return buf;
-  else return nickFromMask(buf);
+  if(isChannelName(_bufferName))
+    return _bufferName;
+  else
+    return nickFromMask(_bufferName);
 }
 
 QDataStream &operator<<(QDataStream &out, const BufferId &bufferId) {
-  out << bufferId.id << bufferId.gid << bufferId.net.toUtf8() << bufferId.buf.toUtf8();
+  out << bufferId._id << bufferId._netid << bufferId._gid << bufferId._networkName.toUtf8() << bufferId._bufferName.toUtf8();
+  return out;
 }
 
 QDataStream &operator>>(QDataStream &in, BufferId &bufferId) {
   QByteArray n, b;
-  BufferId i;
-  in >> bufferId.id >> bufferId.gid >> n >> b;
-  bufferId.net = QString::fromUtf8(n);
-  bufferId.buf = QString::fromUtf8(b);
+  in >> bufferId._id >> bufferId._netid >> bufferId._gid >> n >> b;
+  bufferId._networkName = QString::fromUtf8(n);
+  bufferId._bufferName = QString::fromUtf8(b);
+  return in;
 }
 
-uint qHash(const BufferId &bid) {
-  return qHash(bid.id);
+uint qHash(const BufferId &bufferid) {
+  return qHash(bufferid._id);
 }
 
 /**
@@ -170,7 +100,5 @@ uint qHash(const BufferId &bid) {
 //  return 0;
 //}
 
-QMutex Global::mutex;
 Global::RunMode Global::runMode;
-UserId Global::guiUser;
 QString Global::quasselDir;