// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #ifndef RESTSERVICE_H #define RESTSERVICE_H #include "abstractresource.h" #include #include #include #include #include #include #include class RestAccessManager; class RestService : public QObject, public QQmlParserStatus { Q_OBJECT Q_PROPERTY(RestAccessManager* network READ network CONSTANT) Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) Q_PROPERTY(QQmlListProperty resources READ resources) Q_CLASSINFO("DefaultProperty", "resources") Q_INTERFACES(QQmlParserStatus) QML_ELEMENT public: explicit RestService(QObject* parent = nullptr); ~RestService() override = default; RestAccessManager* network() const; QUrl url() const; void setUrl(const QUrl& url); void classBegin() override; void componentComplete() override; QQmlListProperty resources(); signals: void urlChanged(); private: QUrl m_url; QList m_resources; std::shared_ptr m_manager; }; #endif // RESTSERVICE_H