// Squawk messenger. // Copyright (C) 2019 Yury Gubich // // 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 3 of the License, or // (at your option) any later version. // // 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, see . #include "clientinfo.h" Shared::ClientInfo::ClientInfo(): name(), category(), type(), capabilitiesNode(), capabilitiesVerification(), capabilitiesHash(), specificPresence(), capabilitiesExtensions() {} QString Shared::ClientInfo::getId() const { return capabilitiesNode + "/" + capabilitiesVerification; } QDataStream & Shared::ClientInfo::operator >> (QDataStream& stream) const { stream << name; stream << category; stream << type; stream << capabilitiesNode; stream << capabilitiesVerification; stream << capabilitiesHash; stream << (quint8)capabilitiesExtensions.size(); for (const QString& ext : capabilitiesExtensions) { stream << ext; } return stream; } QDataStream & Shared::ClientInfo::operator << (QDataStream& stream) { stream >> name; stream >> category; stream >> type; stream >> capabilitiesNode; stream >> capabilitiesVerification; stream >> capabilitiesHash; quint8 size; stream >> size; for (quint8 i = 0; i < size; ++i) { QString ext; stream >> ext; capabilitiesExtensions.insert(ext); } return stream; } QDataStream& operator<< (QDataStream& stream, const Shared::ClientInfo& image) { image >> stream; return stream; } QDataStream& operator>> (QDataStream& stream, Shared::ClientInfo& image) { image << stream; return stream; }