/**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the QtLocation module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL3$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPLv3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or later as published by the Free ** Software Foundation and appearing in the file LICENSE.GPL included in ** the packaging of this file. Please review the following information to ** ensure the GNU General Public License version 2.0 requirements will be ** met: http://www.gnu.org/licenses/gpl-2.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qplacematchrequest.h" #include #include #include QT_BEGIN_NAMESPACE class QPlaceMatchRequestPrivate : public QSharedData { public: QPlaceMatchRequestPrivate(); QPlaceMatchRequestPrivate(const QPlaceMatchRequestPrivate &other); ~QPlaceMatchRequestPrivate(); QPlaceMatchRequestPrivate &operator=(const QPlaceMatchRequestPrivate &other); bool operator==(const QPlaceMatchRequestPrivate &other) const; void clear(); QList places; QVariantMap parameters; }; QPlaceMatchRequestPrivate::QPlaceMatchRequestPrivate() : QSharedData() { } QPlaceMatchRequestPrivate::QPlaceMatchRequestPrivate(const QPlaceMatchRequestPrivate &other) : QSharedData(other), places(other.places), parameters(other.parameters) { } QPlaceMatchRequestPrivate::~QPlaceMatchRequestPrivate() { } QPlaceMatchRequestPrivate &QPlaceMatchRequestPrivate::operator=(const QPlaceMatchRequestPrivate &other) { if (this != &other) { places = other.places; parameters = other.parameters; } return *this; } bool QPlaceMatchRequestPrivate::operator==(const QPlaceMatchRequestPrivate &other) const { return (places == other.places && parameters == other.parameters); } void QPlaceMatchRequestPrivate::clear() { places.clear(); parameters.clear(); } /*! \class QPlaceMatchRequest \inmodule QtLocation \ingroup QtLocation-places \ingroup QtLocation-places-requests \since 5.6 \brief The QPlaceMatchRequest class is used to find places from one manager that match those from another. It represents a set of request parameters. Places from another manager that may have corresponding/matching places in the current manager are assigned using setPlaces() or setResults(). A set of further parameters are specified which determines the criteria for matching. The typical key for matching is the QPlaceMatchRequest::AlternativeId, the value is an alternative identifier attribute type of the format x_id_ for example x_id_here. The provider name is name supplied to the QGeoServiceProvider instance. See \l {Matching places between managers} for an example on how to use a match request. \sa QPlaceMatchReply, QPlaceManager */ /*! \variable QPlaceMatchRequest::AlternativeId The key to specify that matching is to be accomplished via an alternative place identifier. */ const QString QPlaceMatchRequest::AlternativeId(QLatin1String("alternativeId")); /*! Default constructor. Constructs a new request object. */ QPlaceMatchRequest::QPlaceMatchRequest() : d_ptr(new QPlaceMatchRequestPrivate()) { } /*! Constructs a copy of \a other. */ QPlaceMatchRequest::QPlaceMatchRequest(const QPlaceMatchRequest &other) : d_ptr(other.d_ptr) { } /*! Destroys the request object. */ QPlaceMatchRequest::~QPlaceMatchRequest() { } /*! Assigns \a other to this search request and returns a reference to this match request. */ QPlaceMatchRequest &QPlaceMatchRequest::operator= (const QPlaceMatchRequest & other) { if (this == &other) return *this; d_ptr = other.d_ptr; return *this; } /*! Returns true if \a other is equal to this match request, otherwise returns false. */ bool QPlaceMatchRequest::operator== (const QPlaceMatchRequest &other) const { Q_D(const QPlaceMatchRequest); return *d == *other.d_func(); } /*! Returns true if \a other is not equal to this match request, otherwise returns false. */ bool QPlaceMatchRequest::operator!= (const QPlaceMatchRequest &other) const { Q_D(const QPlaceMatchRequest); return !(*d == *other.d_func()); } /*! Returns a list of places which are to be matched. */ QList QPlaceMatchRequest::places() const { Q_D(const QPlaceMatchRequest); return d->places; } /*! Sets a list of \a places which are to be matched. \sa setResults() */ void QPlaceMatchRequest::setPlaces(const QList places) { Q_D(QPlaceMatchRequest); d->places = places; } /*! Convenience function which uses a set of search \a results to set the places which should be matched. \sa setPlaces() */ void QPlaceMatchRequest::setResults(const QList &results) { Q_D(QPlaceMatchRequest); QList places; foreach (const QPlaceSearchResult &result, results) { if (result.type() == QPlaceSearchResult::PlaceResult) { QPlaceResult placeResult = result; places.append(placeResult.place()); } } d->places = places; } /*! Returns the parameters for matching places. */ QVariantMap QPlaceMatchRequest::parameters() const { Q_D(const QPlaceMatchRequest); return d->parameters; } /*! Sets the \a parameters for matching places. */ void QPlaceMatchRequest::setParameters(const QVariantMap ¶meters) { Q_D(QPlaceMatchRequest); d->parameters = parameters; } /*! Clears the match request. */ void QPlaceMatchRequest::clear() { Q_D(QPlaceMatchRequest); d->clear(); } inline QPlaceMatchRequestPrivate *QPlaceMatchRequest::d_func() { return static_cast(d_ptr.data()); } inline const QPlaceMatchRequestPrivate *QPlaceMatchRequest::d_func() const { return static_cast(d_ptr.constData()); } QT_END_NAMESPACE