/usr/include/lastfm/XmlQuery.h is in liblastfm-dev 1.0.8-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | /*
Copyright 2009 Last.fm Ltd.
- Primarily authored by Max Howell, Jono Cole and Doug Mansell
This file is part of liblastfm.
liblastfm 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.
liblastfm 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 liblastfm. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LASTFM_XMLQUERY_H
#define LASTFM_XMLQUERY_H
#include "ws.h"
#include <QDomElement>
namespace lastfm
{
/** Qt's XmlQuery implementation is totally unimpressive, so this is a
* hack that feels like jQuery */
class LASTFM_DLLEXPORT XmlQuery
{
public:
/** we assume the bytearray is an XML document, this object will then
* represent the documentElement of that document, eg. if this is a
* Last.fm webservice response:
*
* XmlQuery xq = lastfm::ws::parse(response);
* qDebug() << xq["artist"].text()
*
* Notice the lfm node is not referenced, that is because it is the
* document-element of the XML document.
*/
XmlQuery();
XmlQuery( const XmlQuery& that );
~XmlQuery();
/**
* Fills in the XmlQuery response by parsing raw reply @param data from the
* webservice.
*
* @return true if successfully parsed and the response does not signify an error,
* false otherwise. When false is returned, parseError() contains the error.
*/
bool parse( const QByteArray& data );
/**
* Convenience parse() overload that takes data from the @param reply and calls
* deleteLater() on it.
*
* @return true if successfully parsed and the response does not signify an error,
* false otherwise. When false is returned, parseError() contains the error.
*/
bool parse( QNetworkReply* reply );
ws::ParseError parseError() const;
XmlQuery( const QDomElement& e, const char* name = "" );
/** Selects a DIRECT child element, you can specify attributes like so:
*
* e["element"]["element attribute=value"].text();
*/
XmlQuery operator[]( const QString& name ) const;
QString text() const;
QString attribute( const QString& name ) const;
/** selects all children with specified name, recursively */
QList<XmlQuery> children( const QString& named ) const;
operator QDomElement() const;
XmlQuery& operator=( const XmlQuery& that );
private:
class XmlQueryPrivate * const d;
};
}
LASTFM_DLLEXPORT QDebug operator<<( QDebug d, const lastfm::XmlQuery& xq );
#endif
|