1 | // Copyright (C) 2022 The Qt Company Ltd. |
2 | // Copyright (C) 2019 Alexey Edelev <semlanik@gmail.com> |
3 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only |
4 | |
5 | #include <QtGrpc/qgrpcstatus.h> |
6 | |
7 | #include <QtCore/qdatastream.h> |
8 | #include <QtCore/qdebug.h> |
9 | #include <QtCore/qvariant.h> |
10 | |
11 | QT_BEGIN_NAMESPACE |
12 | |
13 | /*! |
14 | \class QGrpcStatus |
15 | \inmodule QtGrpc |
16 | \compares equality |
17 | \compareswith equality QtGrpc::StatusCode |
18 | \endcompareswith |
19 | \brief The QGrpcStatus class combines a \l {QtGrpc::} {StatusCode} and a |
20 | string message. |
21 | |
22 | The QGrpcStatus class usually provides information about a finished \gRPC |
23 | operation, as returned by the server. |
24 | |
25 | If a RPC operation failed, contains a \l {QtGrpc::} {StatusCode} other than |
26 | \l {QtGrpc::StatusCode::} {Ok}. |
27 | */ |
28 | |
29 | /*! |
30 | \property QGrpcStatus::code |
31 | \brief \l {QtGrpc::} {StatusCode} received for prior \gRPC call. |
32 | */ |
33 | |
34 | /*! |
35 | \property QGrpcStatus::message |
36 | \brief Status message received for prior \gRPC call. |
37 | */ |
38 | |
39 | /*! |
40 | Constructs a QGrpcStatus with the status code \a code and the string \a |
41 | message. |
42 | */ |
43 | QGrpcStatus::QGrpcStatus(QtGrpc::StatusCode code, QAnyStringView message) |
44 | : m_code(code), m_message(message.toString()) |
45 | { |
46 | } |
47 | |
48 | /*! |
49 | Destroys the QGrpcStatus. |
50 | */ |
51 | QGrpcStatus::~QGrpcStatus() = default; |
52 | |
53 | /*! |
54 | Copy-constructs a QGrpcStatus from \a other |
55 | */ |
56 | QGrpcStatus::QGrpcStatus(const QGrpcStatus &other) = default; |
57 | |
58 | /*! |
59 | Assigns the data of the \a other object to this status object and returns |
60 | a reference to it. |
61 | */ |
62 | QGrpcStatus &QGrpcStatus::operator=(const QGrpcStatus &other) = default; |
63 | |
64 | /*! |
65 | \fn QGrpcStatus::QGrpcStatus(QGrpcStatus &&other) noexcept |
66 | |
67 | Move-constructs a new QGrpcStatus from \a other. |
68 | |
69 | \include qtgrpc-shared.qdocinc move-note-desc |
70 | */ |
71 | |
72 | /*! |
73 | \fn QGrpcStatus& QGrpcStatus::operator=(QGrpcStatus &&other) noexcept |
74 | |
75 | Move-assigns \a other to this QGrpcStatus instance and returns a reference |
76 | to it. |
77 | |
78 | \include qtgrpc-shared.qdocinc move-note-desc |
79 | */ |
80 | |
81 | /*! |
82 | \since 6.8 |
83 | |
84 | \include qtgrpc-shared.qdocinc qvariant-desc |
85 | */ |
86 | QGrpcStatus::operator QVariant() const |
87 | { |
88 | return QVariant::fromValue(value: *this); |
89 | } |
90 | |
91 | /*! |
92 | \since 6.8 |
93 | \fn void QGrpcStatus::swap(QGrpcStatus &other) noexcept |
94 | |
95 | \include qtgrpc-shared.qdocinc swap-desc |
96 | */ |
97 | |
98 | /*! |
99 | \fn QtGrpc::StatusCode QGrpcStatus::code() const noexcept |
100 | |
101 | Returns the contained \l {QtGrpc::} {StatusCode}. |
102 | */ |
103 | |
104 | /*! |
105 | \fn const QString &QGrpcStatus::message() const & noexcept |
106 | \fn QString QGrpcStatus::message() && noexcept |
107 | |
108 | Returns the contained status message. |
109 | */ |
110 | |
111 | /*! |
112 | \since 6.8 |
113 | \fn bool QGrpcStatus::isOk() const noexcept |
114 | |
115 | Returns \c true if code() is equal to \l {QtGrpc::StatusCode::} {Ok}. |
116 | */ |
117 | |
118 | /*! |
119 | \fn bool QGrpcStatus::operator==(const QGrpcStatus &lhs, const QtGrpc::StatusCode &rhs) noexcept |
120 | |
121 | Returns \c true if the status codes in \a lhs and \a rhs are equal. |
122 | */ |
123 | |
124 | /*! |
125 | \fn bool QGrpcStatus::operator!=(const QGrpcStatus &lhs, const QtGrpc::StatusCode &rhs) noexcept |
126 | |
127 | Returns \c true if the status codes in \a lhs and \a rhs are not equal. |
128 | */ |
129 | |
130 | /*! |
131 | \fn bool QGrpcStatus::operator==(const QGrpcStatus &lhs, const QGrpcStatus &rhs) noexcept |
132 | |
133 | Returns \c true if the status codes in \a lhs and \a rhs are equal. |
134 | */ |
135 | |
136 | /*! |
137 | \fn bool QGrpcStatus::operator!=(const QGrpcStatus &lhs, const QGrpcStatus &rhs) noexcept |
138 | |
139 | Returns \c true if the status codes in \a lhs and \a rhs are not equal. |
140 | */ |
141 | |
142 | /*! |
143 | \since 6.8 |
144 | \fn size_t QGrpcStatus::qHash(const QGrpcStatus &key, size_t seed) noexcept |
145 | |
146 | \include qtgrpc-shared.qdocinc qhash-desc |
147 | */ |
148 | |
149 | #ifndef QT_NO_DEBUG_STREAM |
150 | |
151 | /*! |
152 | \since 6.8 |
153 | \fn QDebug QGrpcStatus::operator<<(QDebug debug, const QGrpcStatus& status) |
154 | |
155 | Writes \a status to the specified stream \a debug. |
156 | */ |
157 | QDebug operator<<(QDebug debug, const QGrpcStatus &status) |
158 | { |
159 | const QDebugStateSaver save(debug); |
160 | debug.nospace() << "QGrpcStatus( code: " << status.code() << ", message: " << status.message() |
161 | << " )" ; |
162 | return debug; |
163 | } |
164 | |
165 | #endif // QT_NO_DEBUG_STREAM |
166 | |
167 | #ifndef QT_NO_DATASTREAM |
168 | |
169 | /*! |
170 | \since 6.8 |
171 | \fn QDataStream &QGrpcStatus::operator<<(QDataStream &out, const QGrpcStatus &status) |
172 | |
173 | Writes the given \a status to the specified stream \a out. |
174 | */ |
175 | QDataStream &operator<<(QDataStream &out, const QGrpcStatus &status) |
176 | { |
177 | out << status.m_code << status.m_message; |
178 | return out; |
179 | } |
180 | |
181 | /*! |
182 | \since 6.8 |
183 | \fn QDataStream &QGrpcStatus::operator>>(QDataStream &in, QGrpcStatus &status) |
184 | |
185 | Reads a QGrpcStatus from stream \a in into \a status. |
186 | */ |
187 | QDataStream &operator>>(QDataStream &in, QGrpcStatus &status) |
188 | { |
189 | in >> status.m_code; |
190 | in >> status.m_message; |
191 | return in; |
192 | } |
193 | |
194 | #endif // QT_NO_DATASTREAM |
195 | |
196 | QT_END_NAMESPACE |
197 | |
198 | #include "moc_qgrpcstatus.cpp" |
199 | |