/***************************************************************************
- * Copyright (C) 2005-07 by the Quassel IRC Team *
+ * Copyright (C) 2005-2019 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#include <QString>
-#include <QDataStream>
-#include <QByteArray>
-
#include "bufferinfo.h"
+#include <utility>
+
+#include <QByteArray>
+#include <QDataStream>
+#include <QDebug>
+#include <QString>
+
#include "util.h"
BufferInfo::BufferInfo()
- : _id(0),
- _netid(0),
- _gid(0),
- _networkName(QString()),
- _bufferName(QString()) {
+ : _bufferId(0)
+ , _netid(0)
+ , _bufferName(QString())
+{}
+
+BufferInfo::BufferInfo(BufferId id, NetworkId networkid, Type type, uint gid, QString buf)
+ : _bufferId(id)
+ , _netid(networkid)
+ , _type(type)
+ , _groupId(gid)
+ , _bufferName(std::move(buf))
+{}
+
+BufferInfo BufferInfo::fakeStatusBuffer(NetworkId networkId)
+{
+ return BufferInfo(0, networkId, StatusBuffer);
}
-BufferInfo::BufferInfo(uint id, uint networkid, uint gid, QString net, QString buf)
- : _id(id),
- _netid(networkid),
- _gid(gid),
- _networkName(net),
- _bufferName(buf) {
+QString BufferInfo::bufferName() const
+{
+ if (isChannelName(_bufferName))
+ return _bufferName;
+ else
+ return nickFromMask(_bufferName); // FIXME get rid of global functions and use the Network stuff instead!
}
-QString BufferInfo::buffer() const {
- if(isChannelName(_bufferName))
- return _bufferName;
- else
- return nickFromMask(_bufferName);
+bool BufferInfo::acceptsRegularMessages() const
+{
+ if (_type == StatusBuffer || _type == InvalidBuffer)
+ return false;
+ return true;
}
-QDataStream &operator<<(QDataStream &out, const BufferInfo &bufferInfo) {
- out << bufferInfo._id << bufferInfo._netid << bufferInfo._gid << bufferInfo._networkName.toUtf8() << bufferInfo._bufferName.toUtf8();
- return out;
+QDebug operator<<(QDebug dbg, const BufferInfo& b)
+{
+ dbg.nospace() << "(bufId: " << b.bufferId() << ", netId: " << b.networkId() << ", groupId: " << b.groupId()
+ << ", buf: " << b.bufferName() << ")";
+ return dbg.space();
}
-QDataStream &operator>>(QDataStream &in, BufferInfo &bufferInfo) {
- QByteArray n, b;
- in >> bufferInfo._id >> bufferInfo._netid >> bufferInfo._gid >> n >> b;
- bufferInfo._networkName = QString::fromUtf8(n);
- bufferInfo._bufferName = QString::fromUtf8(b);
- return in;
+QDataStream& operator<<(QDataStream& out, const BufferInfo& bufferInfo)
+{
+ out << bufferInfo._bufferId << bufferInfo._netid << (qint16)bufferInfo._type << bufferInfo._groupId << bufferInfo._bufferName.toUtf8();
+ return out;
}
-uint qHash(const BufferInfo &bufferid) {
- return qHash(bufferid._id);
+QDataStream& operator>>(QDataStream& in, BufferInfo& bufferInfo)
+{
+ QByteArray buffername;
+ qint16 bufferType;
+ in >> bufferInfo._bufferId >> bufferInfo._netid >> bufferType >> bufferInfo._groupId >> buffername;
+ bufferInfo._type = (BufferInfo::Type)bufferType;
+ bufferInfo._bufferName = QString::fromUtf8(buffername);
+ return in;
}
+uint qHash(const BufferInfo& bufferid)
+{
+ return qHash(bufferid._bufferId);
+}