X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Ftypes.cpp;fp=src%2Fcommon%2Ftypes.cpp;h=1974c588b87c0a762040e5c28b31eff6a2bf22d0;hb=6a835281b265df6a06b7f41109ad2d449899fed0;hp=0000000000000000000000000000000000000000;hpb=79aa3994d78860c0b7a623a46ce44dffff988fd9;p=quassel.git diff --git a/src/common/types.cpp b/src/common/types.cpp new file mode 100644 index 00000000..1974c588 --- /dev/null +++ b/src/common/types.cpp @@ -0,0 +1,48 @@ +/*************************************************************************** + * Copyright (C) 2005-2018 by the Quassel Project * + * devel@quassel-irc.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) version 3. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * 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., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include "peer.h" +#include "types.h" + +QDataStream &operator<<(QDataStream &out, const SignedId64 &signedId) { + Q_ASSERT(SignalProxy::current()); + Q_ASSERT(SignalProxy::current()->targetPeer()); + + if (SignalProxy::current()->targetPeer()->hasFeature(Quassel::Feature::LongMessageId)) { + out << signedId.toQint64(); + } else { + out << (qint32) signedId.toQint64(); + } + return out; +} + +QDataStream &operator>>(QDataStream &in, SignedId64 &signedId) { + Q_ASSERT(SignalProxy::current()); + Q_ASSERT(SignalProxy::current()->sourcePeer()); + + if (SignalProxy::current()->sourcePeer()->hasFeature(Quassel::Feature::LongMessageId)) { + in >> signedId.id; + } else { + qint32 id; + in >> id; + signedId.id = id; + } + return in; +}