xref: /haiku/docs/user/netservices/NetServicesDefs.dox (revision 3b2aa6c31b4590d5149ca4f4bbdc0b3bb341a82b)
1ec7d71e6SNiels Sascha Reedijk/*
2ec7d71e6SNiels Sascha Reedijk * Copyright 2021 Haiku, Inc. All rights reserved.
3ec7d71e6SNiels Sascha Reedijk * Distributed under the terms of the MIT License.
4ec7d71e6SNiels Sascha Reedijk *
5ec7d71e6SNiels Sascha Reedijk * Authors:
6ec7d71e6SNiels Sascha Reedijk *		Niels Sascha Reedijk, niels.reedijk@gmail.com
7ec7d71e6SNiels Sascha Reedijk *
8ec7d71e6SNiels Sascha Reedijk * Corresponds to:
9ec7d71e6SNiels Sascha Reedijk *		headers/private/netservices2/NetServicesDefs.h	hrev?????
10ec7d71e6SNiels Sascha Reedijk */
11ec7d71e6SNiels Sascha Reedijk
12ec7d71e6SNiels Sascha Reedijk
13ec7d71e6SNiels Sascha Reedijk#if __cplusplus >= 201703L
14ec7d71e6SNiels Sascha Reedijk
15ec7d71e6SNiels Sascha Reedijknamespace BPrivate {
16ec7d71e6SNiels Sascha Reedijk
17ec7d71e6SNiels Sascha Reedijknamespace Network {
18ec7d71e6SNiels Sascha Reedijk
19ec7d71e6SNiels Sascha Reedijk
20ec7d71e6SNiels Sascha Reedijk/*!
21*3b2aa6c3SNiels Sascha Reedijk	\file NetServicesDefs.h
22*3b2aa6c3SNiels Sascha Reedijk	\ingroup netservices
23*3b2aa6c3SNiels Sascha Reedijk	\brief Various standardized error and notification types used by multiple protocols of the
24*3b2aa6c3SNiels Sascha Reedijk		Network Services Kit.
25*3b2aa6c3SNiels Sascha Reedijk
26*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
27*3b2aa6c3SNiels Sascha Reedijk*/
28*3b2aa6c3SNiels Sascha Reedijk
29*3b2aa6c3SNiels Sascha Reedijk
30*3b2aa6c3SNiels Sascha Reedijk/*!
31ec7d71e6SNiels Sascha Reedijk	\class BUnsupportedProtocol
32ec7d71e6SNiels Sascha Reedijk	\ingroup netservices
33ec7d71e6SNiels Sascha Reedijk	\brief Error that indicates that the protocol is not supported.
34ec7d71e6SNiels Sascha Reedijk
35ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
36ec7d71e6SNiels Sascha Reedijk*/
37ec7d71e6SNiels Sascha Reedijk
38ec7d71e6SNiels Sascha Reedijk
39ec7d71e6SNiels Sascha Reedijk/*!
40ec7d71e6SNiels Sascha Reedijk	\fn BUnsupportedProtocol::BUnsupportedProtocol(const char* origin,
41ec7d71e6SNiels Sascha Reedijk		BUrl url, BStringList supportedProtocols)
42*3b2aa6c3SNiels Sascha Reedijk	\brief Create a new unsupported protocol error.
43ec7d71e6SNiels Sascha Reedijk
44ec7d71e6SNiels Sascha Reedijk	\param origin A string representing where this error occured. It is advised
45ec7d71e6SNiels Sascha Reedijk		to initialize it to \c __PRETTY_FUNCTION__ by default.
46ec7d71e6SNiels Sascha Reedijk	\param url The URL object with the unsupported protocol.
47ec7d71e6SNiels Sascha Reedijk	\param supportedProtocols A list with the supported protocols.
48ec7d71e6SNiels Sascha Reedijk
49ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
50ec7d71e6SNiels Sascha Reedijk*/
51ec7d71e6SNiels Sascha Reedijk
52ec7d71e6SNiels Sascha Reedijk
53ec7d71e6SNiels Sascha Reedijk/*!
54ec7d71e6SNiels Sascha Reedijk	\fn BUnsupportedProtocol::BUnsupportedProtocol(BString origin, BUrl url,
55ec7d71e6SNiels Sascha Reedijk		BStringList supportedProtocols)
56ec7d71e6SNiels Sascha Reedijk	\copydoc BUnsupportedProtocol(const char*, BUrl, BStringList)
57ec7d71e6SNiels Sascha Reedijk
58ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
59ec7d71e6SNiels Sascha Reedijk*/
60ec7d71e6SNiels Sascha Reedijk
61ec7d71e6SNiels Sascha Reedijk
62ec7d71e6SNiels Sascha Reedijk/*!
63ec7d71e6SNiels Sascha Reedijk	\fn virtual const char* BUnsupportedProtocol::Message() const noexcept override
64ec7d71e6SNiels Sascha Reedijk	\brief Access the string representation of the message.
65ec7d71e6SNiels Sascha Reedijk
66ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
67ec7d71e6SNiels Sascha Reedijk*/
68ec7d71e6SNiels Sascha Reedijk
69ec7d71e6SNiels Sascha Reedijk
70ec7d71e6SNiels Sascha Reedijk/*!
71ec7d71e6SNiels Sascha Reedijk	\fn const BUrl& BUnsupportedProtocol::Url() const
72ec7d71e6SNiels Sascha Reedijk	\brief The URL that caused the issue.
73ec7d71e6SNiels Sascha Reedijk
74ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
75ec7d71e6SNiels Sascha Reedijk*/
76ec7d71e6SNiels Sascha Reedijk
77ec7d71e6SNiels Sascha Reedijk
78ec7d71e6SNiels Sascha Reedijk/*!
79ec7d71e6SNiels Sascha Reedijk	\fn const BStringList& BUnsupportedProtocol::SupportedProtocols() const
80ec7d71e6SNiels Sascha Reedijk	\brief A list of protocols that are supported.
81ec7d71e6SNiels Sascha Reedijk
82ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
83ec7d71e6SNiels Sascha Reedijk*/
84ec7d71e6SNiels Sascha Reedijk
85ec7d71e6SNiels Sascha Reedijk
86ec7d71e6SNiels Sascha Reedijk/*!
87ec7d71e6SNiels Sascha Reedijk	\class BInvalidUrl
88ec7d71e6SNiels Sascha Reedijk	\ingroup netservices
89ec7d71e6SNiels Sascha Reedijk	\brief Error that indicates that the URL is not valid.
90ec7d71e6SNiels Sascha Reedijk
91ec7d71e6SNiels Sascha Reedijk	This error is raised as an exception when the caller tries to pass a
92ec7d71e6SNiels Sascha Reedijk	\ref BUrl object that does not contain a valid URL.
93ec7d71e6SNiels Sascha Reedijk
94ec7d71e6SNiels Sascha Reedijk	\see \ref BUrl::IsValid()
95ec7d71e6SNiels Sascha Reedijk
96ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
97ec7d71e6SNiels Sascha Reedijk*/
98ec7d71e6SNiels Sascha Reedijk
99ec7d71e6SNiels Sascha Reedijk
100ec7d71e6SNiels Sascha Reedijk/*!
101ec7d71e6SNiels Sascha Reedijk	\fn BInvalidUrl::BInvalidUrl(const char* origin, BUrl url)
102ec7d71e6SNiels Sascha Reedijk	\brief Create a new error invalid URL error.
103ec7d71e6SNiels Sascha Reedijk
104ec7d71e6SNiels Sascha Reedijk	\param origin A string representing where this error occured. It is advised
105ec7d71e6SNiels Sascha Reedijk		to initialize it to \c __PRETTY_FUNCTION__ by default.
106ec7d71e6SNiels Sascha Reedijk	\param url The URL object that did not contain a valid URL.
107ec7d71e6SNiels Sascha Reedijk
108ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
109ec7d71e6SNiels Sascha Reedijk*/
110ec7d71e6SNiels Sascha Reedijk
111ec7d71e6SNiels Sascha Reedijk
112ec7d71e6SNiels Sascha Reedijk/*!
113ec7d71e6SNiels Sascha Reedijk	\fn BInvalidUrl::BInvalidUrl(BString origin, BUrl url)
114ec7d71e6SNiels Sascha Reedijk	\copydoc BInvalidUrl::BInvalidUrl(const char* origin, BUrl url)
115ec7d71e6SNiels Sascha Reedijk*/
116ec7d71e6SNiels Sascha Reedijk
117ec7d71e6SNiels Sascha Reedijk
118ec7d71e6SNiels Sascha Reedijk/*!
119ec7d71e6SNiels Sascha Reedijk	\fn virtual const char* BInvalidUrl::Message() const noexcept override
120ec7d71e6SNiels Sascha Reedijk	\brief Access the string representation of the message.
121ec7d71e6SNiels Sascha Reedijk
122ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
123ec7d71e6SNiels Sascha Reedijk*/
124ec7d71e6SNiels Sascha Reedijk
125ec7d71e6SNiels Sascha Reedijk
126ec7d71e6SNiels Sascha Reedijk/*!
127ec7d71e6SNiels Sascha Reedijk	\fn const BUrl& BInvalidUrl::Url() const
128ec7d71e6SNiels Sascha Reedijk	\brief The URL that caused the issue.
129ec7d71e6SNiels Sascha Reedijk
130ec7d71e6SNiels Sascha Reedijk	\since Haiku R1
131ec7d71e6SNiels Sascha Reedijk*/
132ec7d71e6SNiels Sascha Reedijk
133ec7d71e6SNiels Sascha Reedijk
134*3b2aa6c3SNiels Sascha Reedijk/*!
135*3b2aa6c3SNiels Sascha Reedijk	\class BNetworkRequestError
136*3b2aa6c3SNiels Sascha Reedijk	\ingroup netservices
137*3b2aa6c3SNiels Sascha Reedijk	\brief Error that indicates there was an issue executing the network request.
138*3b2aa6c3SNiels Sascha Reedijk
139*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
140*3b2aa6c3SNiels Sascha Reedijk*/
141*3b2aa6c3SNiels Sascha Reedijk
142*3b2aa6c3SNiels Sascha Reedijk
143*3b2aa6c3SNiels Sascha Reedijk/*!
144*3b2aa6c3SNiels Sascha Reedijk	\enum BNetworkRequestError::ErrorType
145*3b2aa6c3SNiels Sascha Reedijk	\ingroup netservices
146*3b2aa6c3SNiels Sascha Reedijk	\brief A list of errors that can occur while executing a network request.
147*3b2aa6c3SNiels Sascha Reedijk
148*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
149*3b2aa6c3SNiels Sascha Reedijk*/
150*3b2aa6c3SNiels Sascha Reedijk
151*3b2aa6c3SNiels Sascha Reedijk
152*3b2aa6c3SNiels Sascha Reedijk/*!
153*3b2aa6c3SNiels Sascha Reedijk	\var BNetworkRequestError::ErrorType BNetworkRequestError::HostnameError
154*3b2aa6c3SNiels Sascha Reedijk	\brief Error resolving the hostname.
155*3b2aa6c3SNiels Sascha Reedijk
156*3b2aa6c3SNiels Sascha Reedijk	\ref ErrorCode() will be set to contain the underlying error code.
157*3b2aa6c3SNiels Sascha Reedijk
158*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
159*3b2aa6c3SNiels Sascha Reedijk*/
160*3b2aa6c3SNiels Sascha Reedijk
161*3b2aa6c3SNiels Sascha Reedijk
162*3b2aa6c3SNiels Sascha Reedijk/*!
163*3b2aa6c3SNiels Sascha Reedijk	\var BNetworkRequestError::ErrorType BNetworkRequestError::NetworkError
164*3b2aa6c3SNiels Sascha Reedijk	\brief The request was interrupted due to a network error.
165*3b2aa6c3SNiels Sascha Reedijk
166*3b2aa6c3SNiels Sascha Reedijk	This may occur when reading or writing fails due to an underlying network error, like an
167*3b2aa6c3SNiels Sascha Reedijk	unexpected closed connection.
168*3b2aa6c3SNiels Sascha Reedijk
169*3b2aa6c3SNiels Sascha Reedijk	\ref ErrorCode() will be set to contain the underlying error code.
170*3b2aa6c3SNiels Sascha Reedijk
171*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
172*3b2aa6c3SNiels Sascha Reedijk*/
173*3b2aa6c3SNiels Sascha Reedijk
174*3b2aa6c3SNiels Sascha Reedijk
175*3b2aa6c3SNiels Sascha Reedijk/*!
176*3b2aa6c3SNiels Sascha Reedijk	\var BNetworkRequestError::ErrorType BNetworkRequestError::ProtocolError
177*3b2aa6c3SNiels Sascha Reedijk	\brief The request did not complete because the response did not conform to the protocol.
178*3b2aa6c3SNiels Sascha Reedijk
179*3b2aa6c3SNiels Sascha Reedijk	The server gave an unexpected or incorrect response. The network request could not complete
180*3b2aa6c3SNiels Sascha Reedijk	because of this.
181*3b2aa6c3SNiels Sascha Reedijk
182*3b2aa6c3SNiels Sascha Reedijk	There will not be any \ref ErrorCode() set.
183*3b2aa6c3SNiels Sascha Reedijk
184*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
185*3b2aa6c3SNiels Sascha Reedijk*/
186*3b2aa6c3SNiels Sascha Reedijk
187*3b2aa6c3SNiels Sascha Reedijk
188*3b2aa6c3SNiels Sascha Reedijk/*!
189*3b2aa6c3SNiels Sascha Reedijk	\var BNetworkRequestError::ErrorType BNetworkRequestError::SystemError
190*3b2aa6c3SNiels Sascha Reedijk	\brief Other internal error while handling the request.
191*3b2aa6c3SNiels Sascha Reedijk
192*3b2aa6c3SNiels Sascha Reedijk	There could have been issues initializing buffers or decompression engines.
193*3b2aa6c3SNiels Sascha Reedijk
194*3b2aa6c3SNiels Sascha Reedijk	\ref ErrorCode() will be set to contain the underlying error code.
195*3b2aa6c3SNiels Sascha Reedijk
196*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
197*3b2aa6c3SNiels Sascha Reedijk*/
198*3b2aa6c3SNiels Sascha Reedijk
199*3b2aa6c3SNiels Sascha Reedijk
200*3b2aa6c3SNiels Sascha Reedijk/*!
201*3b2aa6c3SNiels Sascha Reedijk	\var BNetworkRequestError::ErrorType BNetworkRequestError::Canceled
202*3b2aa6c3SNiels Sascha Reedijk	\brief The request was canceled before it was completed.
203*3b2aa6c3SNiels Sascha Reedijk
204*3b2aa6c3SNiels Sascha Reedijk	This could either have been done through the API, or because the session that schedules and
205*3b2aa6c3SNiels Sascha Reedijk	executes the requests was destroyed.
206*3b2aa6c3SNiels Sascha Reedijk
207*3b2aa6c3SNiels Sascha Reedijk	There will not be any \ref ErrorCode() set.
208*3b2aa6c3SNiels Sascha Reedijk
209*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
210*3b2aa6c3SNiels Sascha Reedijk*/
211*3b2aa6c3SNiels Sascha Reedijk
212*3b2aa6c3SNiels Sascha Reedijk
213*3b2aa6c3SNiels Sascha Reedijk/*!
214*3b2aa6c3SNiels Sascha Reedijk	\fn BNetworkRequestError::BNetworkRequestError(const char *origin, ErrorType type,
215*3b2aa6c3SNiels Sascha Reedijk		status_t errorCode=B_OK)
216*3b2aa6c3SNiels Sascha Reedijk	\brief Create a new network request error.
217*3b2aa6c3SNiels Sascha Reedijk
218*3b2aa6c3SNiels Sascha Reedijk	\param origin A string representing where this error occured. It is advised
219*3b2aa6c3SNiels Sascha Reedijk		to initialize it to \c __PRETTY_FUNCTION__ by default.
220*3b2aa6c3SNiels Sascha Reedijk	\param type The error type that describes what the issue was that prevented the completion of
221*3b2aa6c3SNiels Sascha Reedijk		the request.
222*3b2aa6c3SNiels Sascha Reedijk	\param error Optional underlying system error. See the \ref BNetworkRequestError::ErrorType
223*3b2aa6c3SNiels Sascha Reedijk		documentation on which error types expect a system error.
224*3b2aa6c3SNiels Sascha Reedijk
225*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
226*3b2aa6c3SNiels Sascha Reedijk*/
227*3b2aa6c3SNiels Sascha Reedijk
228*3b2aa6c3SNiels Sascha Reedijk
229*3b2aa6c3SNiels Sascha Reedijk/*!
230*3b2aa6c3SNiels Sascha Reedijk	\fn status_t BNetworkRequestError::ErrorCode() const noexcept
231*3b2aa6c3SNiels Sascha Reedijk	\brief Get the underlying system error code.
232*3b2aa6c3SNiels Sascha Reedijk
233*3b2aa6c3SNiels Sascha Reedijk	\return A \c status_t error code when the associated \ref BNetworkRequestError::ErrorType sets
234*3b2aa6c3SNiels Sascha Reedijk		the system error, or \c B_OK if there is no additional error code available.
235*3b2aa6c3SNiels Sascha Reedijk
236*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
237*3b2aa6c3SNiels Sascha Reedijk*/
238*3b2aa6c3SNiels Sascha Reedijk
239*3b2aa6c3SNiels Sascha Reedijk
240*3b2aa6c3SNiels Sascha Reedijk/*!
241*3b2aa6c3SNiels Sascha Reedijk	\fn ErrorType BNetworkRequestError::Type() const noexcept
242*3b2aa6c3SNiels Sascha Reedijk	\brief Get the error type.
243*3b2aa6c3SNiels Sascha Reedijk
244*3b2aa6c3SNiels Sascha Reedijk	\return Get the \ref BNetworkRequestError::ErrorType that describes the cause for the request
245*3b2aa6c3SNiels Sascha Reedijk		to fail.
246*3b2aa6c3SNiels Sascha Reedijk
247*3b2aa6c3SNiels Sascha Reedijk	\since Haiku R1
248*3b2aa6c3SNiels Sascha Reedijk*/
249*3b2aa6c3SNiels Sascha Reedijk
250*3b2aa6c3SNiels Sascha Reedijk
251ec7d71e6SNiels Sascha Reedijk} // namespace Network
252ec7d71e6SNiels Sascha Reedijk
253ec7d71e6SNiels Sascha Reedijk} // namespace BPrivate
254ec7d71e6SNiels Sascha Reedijk
255ec7d71e6SNiels Sascha Reedijk#endif
256