1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QQMLGRPCCALLOPTIONS_H
5#define QQMLGRPCCALLOPTIONS_H
6
7#include <QtGrpcQuick/qtgrpcquickexports.h>
8
9#include <QtGrpc/qgrpccalloptions.h>
10
11#include <QtQmlIntegration/qqmlintegration.h>
12
13#include <QtCore/qobject.h>
14
15QT_BEGIN_NAMESPACE
16
17class QQmlGrpcMetadata;
18
19namespace QtGrpcQuickPrivate {
20
21class QQmlGrpcCallOptionsPrivate;
22class Q_GRPCQUICK_EXPORT QQmlGrpcCallOptions : public QObject
23{
24 Q_OBJECT
25 QML_NAMED_ELEMENT(GrpcCallOptions)
26 QML_ADDED_IN_VERSION(6, 7)
27
28 Q_PROPERTY(qint64 deadlineTimeout READ deadlineTimeout WRITE setDeadlineTimeout NOTIFY
29 deadlineTimeoutChanged)
30 Q_PROPERTY(QQmlGrpcMetadata *metadata READ metadata WRITE setMetadata NOTIFY metadataChanged)
31
32public:
33 explicit QQmlGrpcCallOptions(QObject *parent = nullptr);
34 ~QQmlGrpcCallOptions() override;
35
36 const QGrpcCallOptions &options() const & noexcept;
37 void options() && = delete;
38
39 qint64 deadlineTimeout() const;
40 void setDeadlineTimeout(qint64 value);
41
42 QQmlGrpcMetadata *metadata() const;
43 void setMetadata(QQmlGrpcMetadata *value);
44
45Q_SIGNALS:
46 void deadlineTimeoutChanged();
47 void metadataChanged();
48
49private:
50 Q_DECLARE_PRIVATE(QQmlGrpcCallOptions)
51};
52
53}
54QT_END_NAMESPACE
55
56#endif // QQMLGRPCCALLOPTIONS_H
57

source code of qtgrpc/src/grpcquick/qqmlgrpccalloptions.h