mirror of https://github.com/qt/qtdoc.git
51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
// 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 <QtQml/qqml.h>
|
|
#include <QtQml/qqmlparserstatus.h>
|
|
#include <QtNetwork/qrestaccessmanager.h>
|
|
#include <QtNetwork/qnetworkrequestfactory.h>
|
|
#include <QtCore/qobject.h>
|
|
#include <QtCore/qurl.h>
|
|
|
|
class RestService : public QObject, public QQmlParserStatus
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
|
|
Q_PROPERTY(bool sslSupported READ sslSupported CONSTANT)
|
|
Q_PROPERTY(QQmlListProperty<AbstractResource> resources READ resources)
|
|
Q_CLASSINFO("DefaultProperty", "resources")
|
|
Q_INTERFACES(QQmlParserStatus)
|
|
QML_ELEMENT
|
|
|
|
public:
|
|
explicit RestService(QObject *parent = nullptr);
|
|
~RestService() override = default;
|
|
|
|
bool sslSupported();
|
|
|
|
QUrl url() const;
|
|
void setUrl(const QUrl &url);
|
|
|
|
void classBegin() override;
|
|
void componentComplete() override;
|
|
|
|
QQmlListProperty<AbstractResource> resources();
|
|
|
|
signals:
|
|
void urlChanged();
|
|
|
|
private:
|
|
QList<AbstractResource*> m_resources;
|
|
QNetworkAccessManager m_qnam;
|
|
std::shared_ptr<QRestAccessManager> m_manager;
|
|
std::shared_ptr<QNetworkRequestFactory> m_serviceApi;
|
|
};
|
|
|
|
#endif // RESTSERVICE_H
|