/* -*- c++ -*- * * searchinfo.h * * Copyright (C) 2003 Petter E. Stokke * * 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) 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ #ifndef __libkmldonkey_searchinfo_h__ #define __libkmldonkey_searchinfo_h__ #include #include #include #include #include #include "donkeytypes.h" #include "donkeyprotocol.h" class DonkeyMessage; class SearchQuery; //! Representation of an item in a search result. class KDE_EXPORT ResultInfo { public: ResultInfo(DonkeyMessage* msg, int proto); ResultInfo(const ResultInfo&); ~ResultInfo(); //! The numerical ID of the result. int resultNo() const; //! The file name of the result. const QString& resultName() const; //! Alternative file names found on the network. const QStringList& resultNames() const; //! The size of the result in bytes. int32 resultSize() const; //! The numerical ID of the network the file was found on. int32 resultNetwork() const; //! The file format of the result. const QString& resultFormat() const; //! Result tags. const QMap& resultTags() const; //! A comment found for the result. const QString& resultComment() const; //! Returns true if this file has already been downloaded. bool resultAlreadyDone() const; //! Return the list of uids relevant to this search (since protocol 27). const QStringList& resultUids() const; //! Return the first uid of the result, including the identifier string. QString resultUid() const; //! Return the uid for the given URN type, without the identifier string. QString resultUid(const QString& type) const; //! Return a timestamp of some sort. TODO: Figure out what this is. int32 resultTime() const; private: int32 num; int32 net; QString name; QStringList names; int32 size; QString format; QString t; QMap tags; QString comment; bool already_done; QStringList uids; int32 time; }; //! Representation of a search result. class KDE_EXPORT SearchInfo { public: SearchInfo(int id); int searchNo() const; SearchQuery* getQuery(); const QString getQuerystring(); void setQuery(DonkeyMessage* msg); const QIntDict& searchResults() const; void addResult(ResultInfo* result); private: int32 num; QIntDict results; SearchQuery* query; QString querystring; int maxhits; DonkeyProtocol::SearchType searchType; int network; }; #endif