00001 /* 00002 00003 Copyright (C) 2007 by Peter Dimov. 00004 00005 This file is part of Calitko (http://www.calitko.org). 00006 00007 Calitko is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation; either version 2 of the License, or 00010 (at your option) any later version. 00011 00012 Calitko is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with Calitko; if not, write to the Free Software 00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 00021 */ 00022 00023 #include "Qt.h" 00024 #include "QueryStatusResponse.h" 00025 #include "Imports.cpp" 00026 00030 QueryStatusResponse::QueryStatusResponse (quint16 hitsCount) 00031 : VendorMessage (OpenVendorDescriptor, VendorCode ("BEAR"), 12, 1) 00032 { 00033 p.hitsCount = hitsCount; 00034 } 00035 00040 QueryStatusResponse::QueryStatusResponse (const QByteArray &rawHeader, 00041 const QByteArray &rawPayload) 00042 : VendorMessage (rawHeader, rawPayload) 00043 { 00044 parse(); 00045 Q_ASSERT (vendorCode().toBytes() == "BEAR"); 00046 Q_ASSERT (messageType() == 12); 00047 Q_ASSERT (versionNumber() == 1); 00048 } 00049 00053 QueryStatusResponse::~QueryStatusResponse() 00054 { 00055 } 00056 00058 bool QueryStatusResponse::prepareReadPayload (const QByteArray &rawPayload) 00059 { 00060 //return VendorMessage::prepareReadPayload (rawPayload); 00061 return rawPayload.length() == 10; 00062 } 00063 00065 void QueryStatusResponse::readPayload (QDataStream &stream) 00066 { 00067 VendorMessage::readPayload (stream); 00068 stream >> p.hitsCount; 00069 } 00070 00072 int QueryStatusResponse::prepareWritePayload() const 00073 { 00074 return VendorMessage::prepareWritePayload() + 2; 00075 } 00076 00078 void QueryStatusResponse::writePayload(QDataStream &stream) const 00079 { 00080 VendorMessage::writePayload (stream); 00081 stream << p.hitsCount; 00082 }