mirror of
https://review.haiku-os.org/haiku
synced 2024-11-23 07:18:40 +01:00
HaikuBook: Prepare for newer Network Services Kit docs
Change-Id: Ib2cc458f9121cb78250a643affc0933512e65bc8
This commit is contained in:
parent
bcd6a663c2
commit
f54a5a68d7
@ -856,15 +856,7 @@ INPUT = . \
|
||||
../../headers/os/support \
|
||||
../../headers/os/translation \
|
||||
../../headers/posix/syslog.h \
|
||||
../../src/kits/game/GameProducer.h \
|
||||
../../headers/private/netservices/Geolocation.h \
|
||||
../../headers/private/netservices/HttpAuthentication.h \
|
||||
../../headers/private/netservices/HttpForm.h \
|
||||
../../headers/private/netservices/HttpHeaders.h \
|
||||
../../headers/private/netservices/HttpRequest.h \
|
||||
../../headers/private/netservices/UrlProtocolAsynchronousListener.h \
|
||||
../../headers/private/netservices/UrlProtocolListener.h \
|
||||
../../headers/private/netservices/UrlProtocolRoster.h
|
||||
../../src/kits/game/GameProducer.h
|
||||
|
||||
# This tag can be used to specify the character encoding of the source files
|
||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
||||
|
@ -607,15 +607,22 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE);
|
||||
|
||||
\defgroup json Json Handling
|
||||
\brief Provides for parsing and writing of data in Json encoding.
|
||||
*/
|
||||
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
/*!
|
||||
\defgroup netservices Experimental Network Services Support
|
||||
\brief Experimental API to do higher level network requests
|
||||
|
||||
This API currently is marked as experimental. It is part of the
|
||||
<code>BPrivate::Network</code> namespace, the header files are found at
|
||||
<code>headers\\private\\netservices</code>, and you have to link your
|
||||
application to <code>libnetservices.a</code>.
|
||||
<code>headers\\private\\netservices2</code>, and you have to link your
|
||||
application to <code>libnetservices2.a</code>. The new API is only
|
||||
available for modern platforms (x86 and x86_64), and not for the legacy
|
||||
platform (x86_gcc2). The compiler needs to support C++17 or higher.
|
||||
*/
|
||||
#endif
|
||||
|
||||
|
||||
///// Namespace Documentation /////
|
||||
@ -623,6 +630,8 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE);
|
||||
|
||||
//! \brief Internal or experimental API
|
||||
namespace BPrivate {
|
||||
|
||||
#if __cplusplus >= 201703L
|
||||
/*!
|
||||
\brief Experimental Network Services API
|
||||
|
||||
@ -631,4 +640,6 @@ namespace BPrivate {
|
||||
namespace Network {
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
@ -1,341 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Leorize, leorize+oss@disroot.org
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/os/net/UrlProtocolDispatchingListener.h hrev54384
|
||||
* src/kits/network/libnetapi/UrlProtocolDispatchingListener.cpp hrev54384
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file UrlProtocolDispatchingListener.h
|
||||
\ingroup network
|
||||
\brief Provides the BUrlProtocolDispatchingListener class.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_NOTIFICATION
|
||||
\brief The \c what constant for BMessage emitted by
|
||||
BUrlProtocolDispatchingListener.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_CONNECTION_OPENED
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::ConnectionOpened().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_HOSTNAME_RESOLVED
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::HostnameResolved().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_RESPONSE_STARTED
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::ResponseStarted().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_HEADERS_RECEIVED
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::HeadersReceived().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DATA_RECEIVED
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::DataReceived().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DOWNLOAD_PROGRESS
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::DownloadProgress().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_UPLOAD_PROGRESS
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::UploadProgress().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_REQUEST_COMPLETED
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::RequestCompleted().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_CERTIFICATE_VERIFICATION_FAILED
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::CertificateVerificationFailed().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DEBUG_MESSAGE
|
||||
\brief The type of message emitted by
|
||||
BUrlProtocolDispatchingListener::DebugMessage().
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BUrlProtocolDispatchingListener
|
||||
\ingroup network
|
||||
\brief Dispatches BUrlProtocolListener events as BMessage.
|
||||
|
||||
BUrlProtocolDispatchingListener is a BUrlProtocolListener implementation
|
||||
that dispatches received events as BMessage. A corresponding
|
||||
BHandler implementation that make use of BUrlProtocolListener hooks
|
||||
to handle messages emitted by this class is available as
|
||||
BUrlProtocolAsynchronousListener.
|
||||
|
||||
BMessage emitted from this class use the code #B_URL_PROTOCOL_NOTIFICATION.
|
||||
Refer to each member functions for the format of the messages they emit.
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>be:urlProtocolCaller</td>
|
||||
<td>\c B_POINTER_TYPE</td>
|
||||
<td>\a The request that generated the event</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>be:urlProtocolMessageType</td>
|
||||
<td>\c B_INT8_TYPE</td>
|
||||
<td>The message type, one of the B_URL_PROTOCOL_* constants</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Messages for specific events may include extra fields, documented in the
|
||||
description of each of the hook methods, and usually matching the parameters
|
||||
of that method.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::ConnectionOpened(
|
||||
BUrlRequest* caller)
|
||||
\brief Emit a message when the socket is opened.
|
||||
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::HostnameResolved(
|
||||
BUrlRequest* caller, const char* ip)
|
||||
\brief Emit a message when the final IP is discovered.
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Field type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:hostIp</td>
|
||||
<td>\c B_STRING_TYPE</td>
|
||||
<td>\a ip</td>
|
||||
</tr>
|
||||
</table>
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::ResponseStarted(
|
||||
BUrlRequest* caller)
|
||||
\brief Emit a message when the server begins to reply.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::HeadersReceived(
|
||||
BUrlRequest* caller, const BUrlResult& result);
|
||||
\brief Emit a message when all of the response metadata is made available.
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Field type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:result</td>
|
||||
<td>\c B_MESSAGE_TYPE</td>
|
||||
<td>
|
||||
An archived copy of \a result. BUrlResult(BMessage*) can be
|
||||
used to create a new BUrlResult from the received BMessage.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::DownloadProgress(
|
||||
BUrlRequest* caller, off_t bytesReceived, off_t bytesTotal)
|
||||
\brief Emit a message each time a block of data is received.
|
||||
|
||||
This message will usually be emitted after DataReceived().
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Field type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:bytesReceived</td>
|
||||
<td>\c B_INT64_TYPE</td>
|
||||
<td>\a bytesReceived</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:bytesTotal</td>
|
||||
<td>\c B_INT64_TYPE</td>
|
||||
<td>\a bytesTotal</td>
|
||||
</tr>
|
||||
</table>
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::UploadProgress(
|
||||
BUrlRequest* caller, off_t bytesSent, off_t bytesTotal)
|
||||
\brief Emit a message each time a block of data is sent.
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Field type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:bytesSent</td>
|
||||
<td>\c B_INT64_TYPE</td>
|
||||
<td>\a bytesSent</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:bytesTotal</td>
|
||||
<td>\c B_INT64_TYPE</td>
|
||||
<td>\a bytesTotal</td>
|
||||
</tr>
|
||||
</table>
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::RequestCompleted(
|
||||
BUrlRequest* caller, bool success)
|
||||
\brief Emit a message once the request is complete.
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:success</td>
|
||||
<td>\c B_BOOL_TYPE</td>
|
||||
<td>\a success</td>
|
||||
</tr>
|
||||
</table>
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolDispatchingListener::DebugMessage(BUrlRequest* caller,
|
||||
BUrlProtocolDebugMessage type, const char* text)
|
||||
\brief Emit a message with debugging information.
|
||||
|
||||
These messages are useful for tracing and analyzing requests sent and
|
||||
responses received. They can be printed to the standard output, directed to
|
||||
a log file, or simply ignored.
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:type</td>
|
||||
<td>\c B_INT32_TYPE</td>
|
||||
<td>\a type</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:text</td>
|
||||
<td>\c B_STRING_TYPE</td>
|
||||
<td>\a text</td>
|
||||
</tr>
|
||||
</table>
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual bool BUrlProtocolDispatchingListener::CertificateVerificationFailed(
|
||||
BUrlRequest* caller, BCertificate& certificate, const char* message
|
||||
)
|
||||
\brief Emit a message when cerificate verification failed.
|
||||
|
||||
This event is triggered when a certificate failed verification, for example
|
||||
because it has expired, or because the signing authority is not trusted.
|
||||
The user should be informed of the problem, but may decide to continue the
|
||||
request anyway.
|
||||
|
||||
<table>
|
||||
<caption>The format of the emitted message</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:error</td>
|
||||
<td>\c B_STRING_TYPE</td>
|
||||
<td>\a message</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:certificate</td>
|
||||
<td>\c B_POINTER_TYPE</td>
|
||||
<td>Pointer to the \a certificate to be validated</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
This message expects a reply from the handler.
|
||||
|
||||
<table>
|
||||
<caption>The expected format of the reply</caption>
|
||||
<tr>
|
||||
<th>Field name</th>
|
||||
<th>Type</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>url:continue</td>
|
||||
<td>\c B_BOOL_TYPE</td>
|
||||
<td>
|
||||
\a true if the request should be continued, \a false otherwise.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
*/
|
@ -1,266 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Leorize, leorize+oss@disroot.org
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/os/net/UrlRequest.h hrev54384
|
||||
* src/kits/network/libnetapi/UrlRequest.cpp hrev54384
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file UrlRequest.h
|
||||
\ingroup network
|
||||
\brief Provides the BUrlRequest class.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BUrlRequest
|
||||
\ingroup network
|
||||
\brief Base class for URL request handlers.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BUrlRequest::BUrlRequest(const BUrl& url,
|
||||
BUrlProtocolListener* listener, BUrlContext* context,
|
||||
const char* threadName, const char* protocolName)
|
||||
\brief Create a BUrlRequest object.
|
||||
|
||||
This constructor is only relevant to implementors of the interface. Users
|
||||
wishing to create a request should refer to implementations like
|
||||
BHttpRequest or BUrlProtocolRoster::MakeRequest().
|
||||
|
||||
\param url The URL in which resources will be requested from.
|
||||
\param listener Pointer to a BUrlProtocolListener object for handling
|
||||
events raised during the request. Can be \c NULL.
|
||||
\param context Pointer to a BUrlContext. If \c NULL, a program-wide
|
||||
context will be used instead.
|
||||
\param threadName The name of the thread that will be spawned on Run().
|
||||
\param protocolName The name of the protocol handled by this BUrlRequest.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual BUrlRequest::~BUrlRequest()
|
||||
\brief The default destructor for BUrlRequest.
|
||||
|
||||
This destructor will Stop() the request (if running) and release resources
|
||||
held by the object.
|
||||
|
||||
Since the destructor will only call the base version of Stop(), and not overriden methods,
|
||||
implementations for each protocol must override this destructor to ensure that they do stop
|
||||
all activity from the request. In particular, any spawned thread must be stopped before
|
||||
the object is destroyed.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual thread_id BUrlRequest::Run()
|
||||
\brief Start the request.
|
||||
|
||||
\returns The thread id of the request if successful, an error code
|
||||
otherwise.
|
||||
|
||||
For implementors, this base method will create a thread using
|
||||
_ThreadEntry() as the entry point and fThreadName for the name of the
|
||||
thread. The created thread id will be stored in fThreadId. fRunning
|
||||
will then be set to \c true.
|
||||
|
||||
Most implementations shouldn't have to reimplement this method.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BUrlRequest::Stop()
|
||||
\brief Stop the request.
|
||||
|
||||
This method does not guarantee that the request will be stopped on return.
|
||||
Users should wait for BUrlProtocolListener::RequestCompleted() as a
|
||||
confirmation that the request has stopped before destroying the object.
|
||||
|
||||
The base implementation of this method does nothing but set #fQuit to
|
||||
\c true.
|
||||
|
||||
\retval B_OK Operation successful.
|
||||
\retval B_ERROR The request is not running.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual void SetTimeout(bigtime_t timeout)
|
||||
\brief Set the request transfer timeout.
|
||||
|
||||
\note By default no timeout will be applied unless it was set with this
|
||||
method.
|
||||
|
||||
\param timeout The amount of time in microseconds should the request be
|
||||
idle (no data received from the server) before dropping out.
|
||||
|
||||
The base implementation of this method is a no-op.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BUrlRequest::SetUrl(const BUrl& url)
|
||||
\brief Change the URL of the request.
|
||||
|
||||
\param url The new URL to request from.
|
||||
|
||||
This must be done before starting the request with Run. It is not possible
|
||||
to change the URL while the request is running.
|
||||
|
||||
\retval B_OK Operation successful.
|
||||
\retval B_ERROR The request is running.
|
||||
|
||||
\sa Url() for retrieving the request URL.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BUrlRequest::SetContext(BUrlContext* context)
|
||||
\brief Change the context of the request.
|
||||
|
||||
\param context The pointer to a BUrlContext.
|
||||
|
||||
This must be done before starting the request with Run. It is not possible
|
||||
to change the context while the request is running.
|
||||
|
||||
\note Setting the \a context to \c NULL will use the program-wide default
|
||||
context. This is the default also for requests where SetContext was
|
||||
never called.
|
||||
|
||||
\retval B_OK Operation successful.
|
||||
\retval B_ERROR The request is running.
|
||||
|
||||
\sa Context()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BUrlRequest::SetListener(BUrlProtocolListener* listener)
|
||||
\brief Change the BUrlProtocolListener of the request.
|
||||
|
||||
\param listener Pointer to the new listener object. Can be \c NULL.
|
||||
|
||||
\retval B_OK Operation successful.
|
||||
\retval B_ERROR The request is running.
|
||||
|
||||
\sa Listener()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BUrl& BUrlRequest::Url() const
|
||||
\brief Get the URL of the request.
|
||||
|
||||
\sa SetUrl()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BUrlContext* BUrlRequest::Context() const
|
||||
\brief Get the context of the request.
|
||||
|
||||
\sa SetContext()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BUrlProtocolListener* BUrlRequest::Listener() const
|
||||
\brief Get the BUrlProtocolListener of the request.
|
||||
|
||||
\sa SetListener()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BString& BUrlRequest::Protocol() const
|
||||
\brief Get the protocol that this object handles.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn bool BUrlRequest::IsRunning() const
|
||||
\brief Whether the request thread is running.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BUrlRequest::Status() const
|
||||
\brief Get the status of the request.
|
||||
|
||||
\retval B_OK The request has completed successfully.
|
||||
\retval B_BUSY The request is running.
|
||||
\retval B_INTERRUPTED The request was cancelled.
|
||||
|
||||
These are not the only errors that can be returned. The exact list
|
||||
depends on the implementation of this class.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual const BUrlResult& BUrlRequest::Result() const = 0
|
||||
\brief Get the BUrlResult associated with the request.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn static int32 BUrlRequest::_ThreadEntry(void* arg)
|
||||
\brief The default entry point for threads spawned via Run()
|
||||
|
||||
\param arg The pointer to the BUrlRequest that invoked Run().
|
||||
|
||||
This static method will do the following:
|
||||
- Set the Status() to \c B_BUSY.
|
||||
- Call _ProtocolSetup().
|
||||
- Call _ProtocolLoop(). The return value of this method will be set
|
||||
as the Status().
|
||||
- If a valid listener is registered, this method calls
|
||||
BUrlProtocolListener::RequestCompleted() to signify completion.
|
||||
|
||||
This alone should be adequete for most protocol implementations.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlRequest::_ProtocolSetup()
|
||||
\brief Setup the object state before entering the thread loop.
|
||||
|
||||
The base implementation is a no-op.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BUrlRequest::_ProtocolLoop() = 0
|
||||
\brief The thread loop that process the request.
|
||||
|
||||
This method implements the main processing logic. The return value of this
|
||||
method will be set as Status().
|
||||
|
||||
Implementations of this method should check #fQuit periodically as a flag to
|
||||
stop the request, and should implement Stop() in a way that blocking calls
|
||||
within the request can be interrupted. It's preferable that the request
|
||||
can be stopped as soon as it's signalled.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlRequest::_EmitDebug(BUrlProtocolDebugMessage type,
|
||||
const char* format, ...)
|
||||
\brief Emit a debug message.
|
||||
|
||||
If a listener is registered, this method invokes
|
||||
BUrlProtocolListener::DebugMessage() with the formatted message.
|
||||
|
||||
\param type The type of the debug message.
|
||||
\param format The format string. This should a printf-compatible format
|
||||
string.
|
||||
\param ... Arguments to be formatted.
|
||||
*/
|
||||
|
||||
|
@ -1,119 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Leorize, leorize+oss@disroot.org
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/os/net/UrlResult.h hrev54384
|
||||
* src/kits/network/libnetapi/UrlResult.cpp hrev54384
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file UrlResult.h
|
||||
\ingroup network
|
||||
\brief Provides the BUrlResult class.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BUrlResult
|
||||
\ingroup network
|
||||
\brief The result of a request made with BUrlRequest.
|
||||
|
||||
This class contains the metadata acquired during a request made
|
||||
with BUrlRequest.
|
||||
|
||||
Note that subclasses are usually defined with protocol-specific information.
|
||||
For example see BHttpResult for the result of a request using the HTTP
|
||||
protocol.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BUrlResult::BUrlResult()
|
||||
\brief Create an uninitialized BUrlResult object.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BUrlResult::BUrlResult(BMessage* archive)
|
||||
\brief Create a BUrlResult object from a BMessage.
|
||||
|
||||
\param archive The BMessage used to construct the object.
|
||||
|
||||
\note Instantiate() should be used instead to verify whether the BMessage
|
||||
can be used to construct the object.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual status_t BUrlResult::Archive(BMessage* archive, bool deep) const
|
||||
\brief Archive the object into a BMessage.
|
||||
|
||||
\param archive Pointer to the BMessage object to archive into.
|
||||
\param deep If \c true, all children of this object should be archived as
|
||||
well.
|
||||
|
||||
\retval B_OK The operation was successful.
|
||||
\retval B_BAD_VALUE \a archive was \c NULL.
|
||||
\retval B_ERROR An error occurred.
|
||||
|
||||
\sa Instantiate() for construcing the object from the archived BMessage.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BUrlResult::SetContentType(BString contentType)
|
||||
\brief Set the content type of the response.
|
||||
|
||||
This method is used by a BUrlRequest object to set the content type
|
||||
of the response. The content type should be a valid MIME type.
|
||||
|
||||
\param contentType The content type to set to.
|
||||
|
||||
\sa ContentType() for retrieving the set content type.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BUrlResult::SetLength(size_t length)
|
||||
\brief Set the length of the response.
|
||||
|
||||
This method is used by a BUrlRequest object to set the length of
|
||||
the response.
|
||||
|
||||
\param length The length to set to.
|
||||
|
||||
\sa Length() for retrieving the set length.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual BString BUrlResult::ContentType() const
|
||||
\brief Get the MIME type of the response contents.
|
||||
|
||||
\sa SetContentType() for setting the content type to be returned by this
|
||||
method.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual size_t BUrlResult::Length() const
|
||||
\brief Get the length of the response.
|
||||
|
||||
\sa SetLength() for setting the length to be returned by this method.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn static BArchivable* BUrlResult::Instantiate(BMessage* archive)
|
||||
\brief Create a BUrlResult object from a BMessage.
|
||||
|
||||
\param archive The BMessage to construct a BUrlResult from.
|
||||
|
||||
\returns A pointer to the created BUrlResult, or \c NULL if unarchival
|
||||
failed.
|
||||
*/
|
@ -1,89 +0,0 @@
|
||||
/*
|
||||
* Copyright 2019 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Adrien Destugues, pulkomandy@pulkomandy.tk
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/Geolocation.h hrev54923
|
||||
* src/kits/network/libnetservices/Geolocation.cpp hrev54923
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file Geolocation.h
|
||||
\ingroup netservices
|
||||
\brief Geolocation and geocoding services.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BGeolocation
|
||||
\ingroup netservices
|
||||
\brief Geolocation and geocoding services.
|
||||
|
||||
Geolocation allows to know where the computer is currently located.
|
||||
This is currently done by sending a list of Wifi networks within reach to
|
||||
a 3rd party webservice (Mozilla location services), which uses a database
|
||||
of known networks around the world to return an estimate position.
|
||||
|
||||
Geocoding is about identifying places in a way more convenient than
|
||||
latitude and longitude. This can include postal codes, country names,
|
||||
street or building names, etc. This class allows to perform both geocoding
|
||||
(finding a latitude and a longitude from a name) and reverse geocoding
|
||||
(finding a suitable name for a given position). This service is provided
|
||||
to haiku by the 3rd-party geonames.org
|
||||
|
||||
Note that most of the methods in this class perform HTTPS requests to
|
||||
3rd-parties. When using it in your application, it is good practise to
|
||||
first inform the user about what will be shared with these services, and
|
||||
why that's needed. Of course, this also means using these services requires
|
||||
internet access, and you may want to limit the number of calls, both to
|
||||
save bandwidth and time, and to not overuse the provided API keys. If you
|
||||
are going to do more than a few request per application run, you should
|
||||
provide your own API keys instead.
|
||||
|
||||
\since Haiku R1
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BGeolocation::BGeolocation()
|
||||
\brief Initialize a BGeolocation using the default services and API keys.
|
||||
|
||||
Official builds of Haiku include a shared API key for both Mozilla Location
|
||||
Services and geonames.org. You can use this constructor to use these keys
|
||||
in your application.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BGeolocation::BGeolocation(const BUrl& geolocationService,
|
||||
const BUrl& geocodingService)
|
||||
\brief Initialize a BGeolocation using custom services or API keys.
|
||||
|
||||
You can use this constructor to provide your own URL to a webservice to
|
||||
use for the requests. The services have to implement the MLS and geonames
|
||||
API, respectively.
|
||||
|
||||
If you want to override only one of the two URLs, the other can be passed
|
||||
as an empty BUrl object.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BGeolocation::LocateSelf(float& latitude, float& longitude)
|
||||
\brief Locate the computer by detecting nearby WiFi networks.
|
||||
|
||||
This method makes a request to Mozilla Location Services.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BGeolocation::Country(float latitude, float longitude,
|
||||
BCountry& country)
|
||||
\brief Find which country a given set of coordinates is in.
|
||||
|
||||
This method makes a request to geonames.org.
|
||||
*/
|
@ -1,117 +0,0 @@
|
||||
/*
|
||||
* Copyright 2013 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Adrien Destugues, pulkomandy@pulkomandy.tk
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/HttpAuthentication.h hrev54923
|
||||
* src/kits/network/libnetservices/HttpAuthentication.cpp hrev54923
|
||||
*/
|
||||
|
||||
/*!
|
||||
\file HttpAuthentication.h
|
||||
\ingroup netservices
|
||||
\brief Authentication token for use in HTTP protocol communications.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BHttpAuthentication
|
||||
\ingroup netservices
|
||||
\brief Authentication token for the HTTP protocol.
|
||||
|
||||
This class allows managing of an authenticated http session. It stores the
|
||||
authentication credentials and realm and provides tools for generating the
|
||||
required nonces and hashes.
|
||||
|
||||
An instance of this class should be used for the whole length of an HTTP
|
||||
authenticated session. Initialize it by calling Initialize() and setting the
|
||||
username and password (from the constructor or the setter methods). Then,
|
||||
for each page that requires authentication, generate a token using the
|
||||
Authorization() method.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpAuthentication::BHttpAuthentication()
|
||||
\brief Default constructor.
|
||||
|
||||
This will create an unconfigured authentication object with the
|
||||
authentication method set to B_HTTP_AUTHENTICATION_NONE.
|
||||
|
||||
You have to set the username and password, and initialize the object using
|
||||
the Initialize method with proper authentication data.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpAuthentication::BHttpAuthentication(const BString& username,
|
||||
const BString& password)
|
||||
\brief Create an authentication session with the given name and password.
|
||||
|
||||
The authentication method is set to B_HTTP_AUTHENTICATION_NONE.
|
||||
This object can then be used with the Initialize method to bind it to an
|
||||
HTTP authenticated session.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void BHttpAuthentication::SetUserName(const BString& username)
|
||||
\brief Set the user name.
|
||||
|
||||
\param username the new user name.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void BHttpAuthentication::SetPassword(const BString& password)
|
||||
\brief Set the password
|
||||
|
||||
\param password the new password.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void BHttpAuthentication::SetMethod(BHttpAuthenticationMethod method)
|
||||
\brief Set the authentication method
|
||||
|
||||
\param method the new authentication method.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpAuthentication::Initialize(const BString& wwwAuthenticate)
|
||||
\brief Initialize the object from the given authentication data
|
||||
|
||||
This method will parse the given authentication challenge and initialize
|
||||
the authentication type to either B_HTTP_AUTHENTICATION_BASIC or
|
||||
B_HTTP_AUTHENTICATION_DIGEST. The authentication parameters (realm, nonce,
|
||||
algorithm) and state (opaque, stale) are also parsed and stored.
|
||||
|
||||
\param wwwAuthenticate the value of the WWW-Authenticate HTTP header field.
|
||||
\return B_OK if the request was parsed, B_ERROR if there is a parsing error,
|
||||
B_BAD_VALUE if the authentication string is empty.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const BString& BHttpAuthentication::UserName() const
|
||||
\returns the user name.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const BString& BHttpAuthentication::Password() const
|
||||
\returns the password.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpAuthenticationMethod BHttpAuthentication::Method() const
|
||||
\returns the authentication method
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BString BHttpAuthentication::Authorization(const BUrl& url,
|
||||
const BString& method) const
|
||||
\brief Generate an authentication reply for the given URL and method.
|
||||
|
||||
For basic authentication, the reply is constant and is a Base64 encoding of
|
||||
the string made of 'username:password'. In digest mode, each request will
|
||||
have a different reply, so you must call this method for each page you want
|
||||
to authenticate with.
|
||||
|
||||
\return the generated reply
|
||||
*/
|
@ -1,405 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2013 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Adrien Destugues, pulkomandy@pulkomandy.tk
|
||||
* John Scipione, jscipione@gmail.com
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/HttpForm.h hrev54923
|
||||
* src/kits/network/libnetservices/HttpForm.cpp hrev54923
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file HttpForm.h
|
||||
\ingroup netservices
|
||||
\brief Management of HTTP form data
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\enum BPrivate::Network::form_type
|
||||
\ingroup netservices
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var form_type B_HTTP_FORM_URL_ENCODED
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var form_type B_HTTP_FORM_MULTIPART
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\enum BPrivate::Network::form_content_type
|
||||
\ingroup netservices
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var form_content_type B_HTTPFORM_UNKNOWN
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var form_content_type B_HTTPFORM_STRING
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var form_content_type B_HTTPFORM_FILE
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var form_content_type B_HTTPFORM_BUFFER
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BHttpFormData
|
||||
\ingroup netservices
|
||||
\brief Stores a form data entry sent or received during an HTTP request.
|
||||
|
||||
Each element in a form is stored in an instance of this class. The values
|
||||
can be either strings, arbitrary binary buffers, or a pointer to a file.
|
||||
|
||||
The latter allows reading data from the file as it is being sent through
|
||||
the network, removing hte need to buffer the whole file contents in memory.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpFormData::BHttpFormData(const BString& name, const BString& value)
|
||||
\brief Construct a BHttpFormData object with a string value.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpFormData::BHttpFormData(const BString& name, const BPath& file)
|
||||
\brief Construct a BHttpFormData object which value is a file contents
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpFormData::BHttpFormData(const BString& name, const void* buffer,
|
||||
ssize_t size)
|
||||
\brief Construct a BHttpFormData object which value is a binary buffer.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn bool BHttpFormData::InitCheck() const
|
||||
\brief Checks the initialization of the object
|
||||
|
||||
\return \c false if attempting to construct a BHttpFormData with a \c NULL
|
||||
buffer.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BString& BHttpFormData::Name() const
|
||||
\brief Get the form field name
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BString& BHttpFormData::String() const
|
||||
\brief Get the string value of a form field.
|
||||
|
||||
\return An empty string for buffer and file based fields.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BPath& BHttpFormData::File() const
|
||||
\brief Get the file path of a form field.
|
||||
|
||||
\return An empty string for buffer and string based fields.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const void* BHttpFormData::Buffer() const
|
||||
\brief Get a pointer to the data of a form field.
|
||||
|
||||
\return An empty string for string and file based fields
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn ssize_t BHttpFormData::BufferSize() const;
|
||||
\brief Get the buffer size
|
||||
|
||||
\return 0 for string and file based fields.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn bool BHttpFormData::IsFile() const
|
||||
\return \c true if the field data is a file.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BString& BHttpFormData::Filename() const;
|
||||
\return The name of the file, for file based fields.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BString& BHttpFormData::MimeType() const
|
||||
\return The MIME type of the data.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn form_content_type BHttpFormData::Type() const
|
||||
\return The kind of field.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpFormData::CopyBuffer()
|
||||
\brief Make a copy of the internal buffer
|
||||
|
||||
The constructor for buffer-based fields does not copy the data given to it,
|
||||
it just keeps a pointer. If you want to retain ownership of the data, call
|
||||
this method so the buffer copies and releases it.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpFormData::MarkAsFile(const BString& filename,
|
||||
const BString& mimeType)
|
||||
\brief Mark a field as a file.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpFormData::UnmarkAsFile()
|
||||
\brief Unmark a field as a file.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpFormData::CopyBuffer()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpFormData& BHttpFormData::operator=(const BHttpFormData& other)
|
||||
\brief Assignment operator.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BHttpForm
|
||||
\ingroup netservices
|
||||
\brief Container for all the BHttpFormData instances making up an HTTP form contents.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::BHttpForm()
|
||||
\brief Create a new form object.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::BHttpForm(const BHttpForm& other)
|
||||
\brief Create a new form object as a copy of \a other.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::BHttpForm(const BString& formString)
|
||||
\brief Create a new form object and parse the \a formString.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::~BHttpForm()
|
||||
\brief Clear the form and destroy the form object.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::ParseString(const BString& formString)
|
||||
\brief Parse the \a formString.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BString BHttpForm::RawData() const
|
||||
\brief Return the form's raw data as a BString.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpForm::AddString(const BString& fieldName,
|
||||
const BString& value)
|
||||
\brief Add a string to the form with the specified \a fieldName and \a value.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpForm::AddInt(const BString& fieldName, int32 value)
|
||||
\brief Add an int to the form with the specified \a fieldName and \a value.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpForm::AddFile(const BString& fieldName, const BPath& file)
|
||||
\brief Add a file to the form with the specified \a fieldName and \a value.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpForm::AddBuffer(const BString& fieldName,
|
||||
const void* buffer, ssize_t size)
|
||||
\brief Add a buffer to the form with the specified \a fieldName and \a buffer
|
||||
and \a size.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn status_t BHttpForm::AddBufferCopy(const BString& fieldName,
|
||||
const void* buffer, ssize_t size)
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::MarkAsFile(const BString& fieldName,
|
||||
const BString& filename, const BString& mimeType)
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::MarkAsFile(const BString& fieldName,
|
||||
const BString& filename)
|
||||
\brief Mark a field as a filename.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::UnmarkAsFile(const BString& fieldName)
|
||||
\brief Unmark a field as a filename.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::SetFormType(form_type type)
|
||||
\brief Change form type.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn bool BHttpForm::HasField(const BString& name) const
|
||||
\brief Returns whether or not a form has a field with the specified \a name.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BString BHttpForm::GetMultipartHeader(const BString& fieldName) const
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn form_type BHttpForm::GetFormType() const
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn const BString& BHttpForm::GetMultipartBoundary() const
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BString BHttpForm::GetMultipartFooter() const
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn ssize_t BHttpForm::ContentLength() const
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::Iterator BHttpForm::GetIterator()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::Clear()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpFormData& BHttpForm::operator[](const BString& name)
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::_ExtractNameValuePair(const BString& formString, int32* index)
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::_GenerateMultipartBoundary()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::Clear()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BHttpForm::Iterator
|
||||
\ingroup netservices
|
||||
\brief Form Iterator.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::Iterator::Iterator(BHttpForm* form)
|
||||
\brief Constructor.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::Iterator::Iterator(const Iterator& other);
|
||||
\brief Copy contstructor.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn bool BHttpForm::Iterator::HasNext() const
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpFormData* BHttpForm::Iterator::Next()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpForm::Iterator::Remove()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BString BHttpForm::Iterator::MultipartHeader()
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BHttpForm::Iterator& BHttpForm::Iterator::operator=(const Iterator& other)
|
||||
\brief Assignment operator.
|
||||
*/
|
@ -1,182 +0,0 @@
|
||||
/*
|
||||
* Copyright 2013 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Adrien Destugues, pulkomandy@pulkomandy.tk
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/HttpHeaders.h hrev54923
|
||||
* src/kits/network/libnetservices/HttpHeaders.cpp hrev54923
|
||||
*/
|
||||
|
||||
/*!
|
||||
\file HttpHeaders.h
|
||||
\ingroup netservices
|
||||
\brief Management of HTTP headers
|
||||
*/
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BHttpHeader
|
||||
\ingroup netservices
|
||||
\brief Represent a single header field for an HTTP connection
|
||||
|
||||
HTTP headers are key-value pairs, where both the key and the value are
|
||||
strings. The main purpose of this class is storing the pair and encoding it
|
||||
to the HTTP protocol format, where some characters have to be escaped.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpHeader::BHttpHeader()
|
||||
\brief Default constructor.
|
||||
|
||||
The header is initialized with empty key and value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpHeader::BHttpHeader(const char* string)
|
||||
\brief Construct a BHttpHeader from an already encoded string
|
||||
|
||||
The given string should be in the form "key:value" with all special
|
||||
characters properly escaped. There is no way to detect parsing errors when
|
||||
the given string is not properly formatted. Consider using SetHeader()
|
||||
instead, where this can be checked.
|
||||
|
||||
\param string the http-encoded header to parse
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpHeader::BHttpHeader(const char* name, const char* value)
|
||||
\brief Construct a BHttpHeader from an unencoded key-value pair.
|
||||
|
||||
\param name the key
|
||||
\param value the value
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpHeader::BHttpHeader(const BHttpHeader& copy)
|
||||
\brief Copy constructor.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void BHttpHeader::SetName(const char* name)
|
||||
\brief Sets the key for this header.
|
||||
|
||||
The key is trimmed (BString::Trim()) to remove any whitespace.
|
||||
|
||||
\param name the new key
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void BHttpHeader::SetValue(const char* value)
|
||||
\brief Sets the value for this header.
|
||||
|
||||
The value is trimmed (BString::Trim()) to remove any whitespace.
|
||||
|
||||
\param value the new value
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn bool BHttpHeader::SetHeader(const char* string)
|
||||
\brief Parse the given string and configure this object
|
||||
|
||||
Extracts and decode the name and value from the given string.
|
||||
|
||||
\param string the header data to parse
|
||||
\return wether parsing succeeded
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const char* BHttpHeader::Name() const
|
||||
\return the key for this header
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const char* BHttpHeader::Value() const
|
||||
\return the value for this header
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const char* BHttpHeader::Header() const
|
||||
\return the encoded header
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn bool BHttpHeader::NameIs(const char* name) const
|
||||
\brief Compare this header name with the given one
|
||||
|
||||
Both names are trimmed from whitespace, and the comparison is not case
|
||||
sensitive (as per the HTTP specification).
|
||||
*/
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BHttpHeaders
|
||||
\ingroup netservices
|
||||
\brief Container for a set of HTTP headers.
|
||||
|
||||
This class allows management of the set of headers for a single HTTP
|
||||
transaction. They are stored in a list and can be iterated on.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpHeaders::BHttpHeaders()
|
||||
\brief Construct an empty header list.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpHeaders::BHttpHeaders(const BHttpHeaders& copy)
|
||||
\brief Copy constructor
|
||||
|
||||
A deep copy is performed, so modifying the headers in the copy does not
|
||||
change the original.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn const char* BHttpHeaders::HeaderValue(const char* name) const
|
||||
\return the value mapped to the given key, or NULL if not found.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BHttpHeader& BHttpHeaders::HeaderAt(int32 index) const
|
||||
\brief Find header by position
|
||||
|
||||
\param index must be in bounds, else this method will crash.
|
||||
\see CountHeaders()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn int32 BHttpHeaders::CountHeaders() const
|
||||
\return the number of entries in this set
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn int32 BHttpHeaders::HasHeader(const char* name) const
|
||||
\brief Find an header by key
|
||||
\return The index of the header for use with HeaderAt(), or B_ERROR if not
|
||||
found.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn bool BHttpHeaders::AddHeader(const char* line)
|
||||
\brief Add a new header to the list, from an HTTP header line.
|
||||
|
||||
Duplicates headers are allowed.
|
||||
|
||||
\return false when out of memory.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn bool BHttpHeaders::AddHeader(const char* name, const char* value)
|
||||
\brief Add a new header from the given key:value pair
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn bool BHttpHeaders::AddHeader(const char* name, int32 value)
|
||||
\brief Convenience method to add a header with a numeric value.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void BHttpHeaders::Clear()
|
||||
\brief Remove all HTTP headers from the list
|
||||
*/
|
||||
|
@ -1,182 +0,0 @@
|
||||
/*
|
||||
* Copyright 2013 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Adrien Destugues, pulkomandy@pulkomandy.tk
|
||||
* John Scipione, jscipione@gmail.com
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/HttpRequest.h hrev54923
|
||||
* src/kits/network/libnetservices/HttpRequest.cpp hrev54923
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file HttpRequest.h
|
||||
\ingroup netservices
|
||||
\brief Management of HTTP or HTTPS protocol requests
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BHttpRequest
|
||||
\ingroup netservices
|
||||
\brief Handles a request over HTTP or HTTPS.
|
||||
|
||||
Instances of ths class will be created by the BUrlProtocolRoster for
|
||||
BUrl with the "http" or "https" protocol. The HTTP protocol is
|
||||
implemented as specified in RFC2616. The request headers and body can be
|
||||
customized, then sent to the server. The reply is then parsed and made
|
||||
available to the application.
|
||||
|
||||
This class only implements the client-side part of HTTP, it can't be used
|
||||
to build an HTTP server.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetMethod(const char* method)
|
||||
\brief Set the HTTP method.
|
||||
|
||||
You can use either one of the standard methods (B_HTTP_GET is the default)
|
||||
or a custom one. The standard methods are B_HTTP_GET, B_HTTP_POST,
|
||||
B_HTTP_PUT, B_HTTP_DELETE, B_HTTP_HEAD, B_HTTP_OPTIONS, B_HTTP_TRACE and
|
||||
B_HTTP_CONNECT.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetFollowLocation(bool follow)
|
||||
\brief Enable or disable following HTTP redirects.
|
||||
|
||||
An HTTP server can redirect a request to another address, either on the
|
||||
same host or elsewhere. When FollowLocation is set (the default), these
|
||||
redirections will be followed until an actual page (or an error) is found.
|
||||
When it is unset, the redirection will not be followed and will be reported
|
||||
to the client.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetMaxRedirections(int8 maxRedirections)
|
||||
\brief Set the maximal number of redirections to follow before giving up.
|
||||
|
||||
This is only useful when SetFollowLocation is enabled. It will abort
|
||||
the request after the given number of redirections. This avoids and helps
|
||||
diagnosing redirection cycles, where two addresses redirect to each other.
|
||||
|
||||
The default is to follow at most 8 redirections before giving up.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetReferrer(const BString& referrer)
|
||||
\brief Set the referrer.
|
||||
|
||||
The referrer is a string sent to the server in the "Referrer:" HTTP header
|
||||
field. It helps the server know where the request comes from. When
|
||||
following a link in an HTML page, this is usually set to the URL of that
|
||||
page.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetUserAgent(const BString& userAgent)
|
||||
\brief Set the user agent.
|
||||
|
||||
The user agent is an identifier for the client sending an HTTP request.
|
||||
Some servers will use this to send different content depending on the
|
||||
software asking for a page.
|
||||
|
||||
The default user agent is "Services Kit (Haiku)".
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetHeaders(const BHttpHeaders& headers)
|
||||
\brief Set the HTTP headers.
|
||||
|
||||
This method replaces the whole set of headers for this request with a copy
|
||||
of the given ones.
|
||||
|
||||
\param headers the header template to copy from.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::AdoptHeaders(BHttpHeaders* const headers)
|
||||
\brief Set the HTTP headers.
|
||||
|
||||
This method replaces the whole set of headers for this request. It takes
|
||||
ownership of the parameter, which must not be used afterwards.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
\fn void BHttpRequest::SetDiscardDate(bool discard)
|
||||
|
||||
This is currently unused.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
\fn void BHttpRequest::DisableListener(bool disable)
|
||||
This is currently unused.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetAutoReferrer(bool enable)
|
||||
\brief Automatically set the referrer when the request is done.
|
||||
|
||||
This allows HttpRequest to manage the referrer automatically. Each request
|
||||
will set the referrer to its own URL so the next request automatically
|
||||
uses that one.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetPostFields(const BHttpForm& fields)
|
||||
\brief Set the fields for form POST data.
|
||||
|
||||
Replaces the content of the request with a copy of the given POST fields.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::AdoptPostFields(BHttpForm* const fields)
|
||||
\brief Set the fields for form POST data.
|
||||
|
||||
Replaces the content of the request with the given POST fields.
|
||||
|
||||
This method takes ownership of the given form, which must not be used
|
||||
elsewhere afterwards.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::AdoptInputData(BDataIO* const data, const ssize_t size = -1)
|
||||
\brief Set the request body.
|
||||
|
||||
If the size is -1 (the default), the data will be sent using chunked
|
||||
transfers. If the size is known, it will be sent using the Content-Length
|
||||
header and non-chunked mode.
|
||||
|
||||
You should set the size whenever possible, as some servers will not handle
|
||||
chunked mode properly in all cases.
|
||||
|
||||
This method takes ownership of the data, which must not be used elsewhere.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetUserName(const BString& userName)
|
||||
\brief Set the user name for HTTP authentication.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn void BHttpRequest::SetPassword(const BString& password)
|
||||
\brief Set the user password for HTTP authentication.
|
||||
*/
|
@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Leorize, leorize+oss@disroot.org
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/UrlProtocolAsynchronousListener.h hrev54923
|
||||
* src/kits/network/libnetapi/UrlProtocolAsynchronousListener.cpp hrev54923
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file UrlProtocolAsynchronousListener.h
|
||||
\ingroup netservices
|
||||
\brief Provides the BUrlProtocolAsynchronousListener interface.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BUrlProtocolAsynchronousListener
|
||||
\ingroup netservices
|
||||
\brief Provides a handler for BUrlProtocolDispatchingListener.
|
||||
|
||||
BUrlProtocolAsynchronousListener transparently handles BMessage issued by
|
||||
BUrlProtocolDispatchingListener via callbacks from the BUrlProtocolListener
|
||||
interface.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn BUrlProtocolAsynchronousListener::BUrlProtocolAsynchronousListener(bool transparent = false)
|
||||
\brief Create a BUrlProtocolAsynchronousListener.
|
||||
|
||||
This constructor will also add the created object to the list of be_app
|
||||
handlers.
|
||||
|
||||
\param transparent Whether a BUrlProtocolListener object should be created
|
||||
in conjunction with the current object. This object can be accessed via
|
||||
SynchronousListener().
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual BUrlProtocolAsynchronousListener::~BUrlProtocolAsynchronousListener()
|
||||
\brief Default destructor for BUrlProtocolAsynchronousListener.
|
||||
|
||||
This destructor will free resources associated with the current object.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn BUrlProtocolListener* BUrlProtocolAsynchronousListener::SynchronousListener()
|
||||
\brief The synchronous listener created from the current object.
|
||||
|
||||
\returns A pointer to a BUrlProtocolListener object, or \c NULL if
|
||||
\c transparent was \c false on object creation and/or memory couldn't
|
||||
be allocated for the object at the time of creation.
|
||||
|
||||
\warning The returned pointer lifetime is associated with the current object.
|
||||
Do not attempt to delete this pointer.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolAsynchronousListener::MessageReceived(BMessage* message)
|
||||
\brief Handle messages that has been received by the associated looper.
|
||||
|
||||
This handler handles messages received from
|
||||
BUrlProtocolDispatchingListener and handle them via callbacks as defined per
|
||||
BUrlProtocolListener.
|
||||
*/
|
@ -1,198 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Leorize, leorize+oss@disroot.org
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/UrlProtocolListener.h hrev54923
|
||||
* src/kits/network/libnetapi/UrlProtocolListener.cpp hrev54923
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file UrlProtocolListener.h
|
||||
\ingroup netservices
|
||||
\brief Provides the BUrlProtocolListener abstract interface.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\enum BPrivate::Network::BUrlProtocolDebugMessage
|
||||
\brief The type of the debug message.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DEBUG_TEXT
|
||||
\brief Informational debug message.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DEBUG_ERROR
|
||||
\brief Error debug message.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DEBUG_HEADER_IN
|
||||
\brief Debug messages related to metadata received.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DEBUG_HEADER_OUT
|
||||
\brief Debug messages related to metadata sent.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DEBUG_TRANSFER_IN
|
||||
\brief Debug messages related to data received.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\var B_URL_PROTOCOL_DEBUG_TRANSFER_OUT
|
||||
\brief Debug messages related to data sent.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BUrlProtocolListener
|
||||
\ingroup netservices
|
||||
\brief Abstract interface for handling BUrlRequest events.
|
||||
|
||||
BUrlProtocolListener is the base class for handling networking events from
|
||||
BUrlRequest.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::ConnectionOpened(BUrlRequest* caller)
|
||||
\brief Called when the socket is opened.
|
||||
|
||||
\b Frequency: Once
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::HostnameResolved(BUrlRequest* caller,
|
||||
const char* ip)
|
||||
\brief Called when the final IP is discovered.
|
||||
|
||||
\b Frequency: Once
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
\param ip String representing the IP address of the resource host.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::ResponseStarted(BUrlRequest* caller)
|
||||
\brief Called when the request has been emitted and the server begins to reply.
|
||||
|
||||
Typically this callback will be called when the HTTP status code is
|
||||
received.
|
||||
|
||||
\b Frequency: Once
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::HeadersReceived(BUrlRequest* caller)
|
||||
\brief Called when all of the server response metadata (such as headers)
|
||||
have been read and parsed.
|
||||
|
||||
\b Frequency: Once
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::BytesWritten(BUrlRequest* caller,
|
||||
size_t size)
|
||||
\brief Called each time a block of data is written.
|
||||
|
||||
This callback is called whenever a block of data is written to the
|
||||
BDataIO associated with the request. If no BDataIO is associated, the
|
||||
callback will not be invoked.
|
||||
|
||||
\b Frequency: Zero or more
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
\param size Size of the written data block.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::DownloadProgress(BUrlRequest* caller,
|
||||
off_t bytesReceived, off_t bytesTotal)
|
||||
\brief Called each time a block of data is downloaded.
|
||||
|
||||
This callback might still be invoked even when no BDataIO is associated
|
||||
with the request, as data can still be downloaded and discarded so that the
|
||||
request can be completed and the socket can be reused.
|
||||
|
||||
\b Frequency: Zero or more
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
\param bytesReceived Number of data bytes received. This is the number of
|
||||
bytes received prior to any processing and can be smaller than the
|
||||
size of the data block written to the output BDataIO as the transport
|
||||
might be compressed.
|
||||
\param bytesTotal Total number of data bytes expected. \c 0 will be passed
|
||||
if the total number of data bytes is not available.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::UploadProgress(BUrlRequest* caller,
|
||||
off_t bytesSent, off_t bytesTotal)
|
||||
\brief Called each time a block of data is sent.
|
||||
|
||||
\note Currently this callback is never called.
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
\param bytesSent Number of data bytes sent.
|
||||
\param bytesTotal Total number of data bytes left.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::RequestCompleted(BUrlRequest* caller,
|
||||
bool success)
|
||||
\brief Called once the request is complete.
|
||||
|
||||
\b Frequency: Once
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
\param success Whether the request has been successfully completed.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual void BUrlProtocolListener::DebugMessage(BUrlRequest* caller,
|
||||
BUrlProtocolDebugMessage type, const char* text)
|
||||
\brief Called each time a debug message is emitted.
|
||||
|
||||
\b Frequency: Zero or more
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
\param type Type of the message.
|
||||
\param text The message.
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn virtual bool BUrlProtocolListener::CertificateVerificationFailed(
|
||||
BUrlRequest* caller, BCertificate& certificate, const char* message
|
||||
)
|
||||
\brief Called when cerificate verification failed.
|
||||
|
||||
\b Frequency: Once
|
||||
|
||||
\param caller The BUrlRequest that invoked this callback.
|
||||
\param certificate The SSL certificate of which validation failed.
|
||||
\param message The error message describing the issue.
|
||||
|
||||
\returns \c true to ignore and proceed with the request, \c false to abort.
|
||||
*/
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Copyright 2020 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Leorize, leorize+oss@disroot.org
|
||||
*
|
||||
* Corresponds to:
|
||||
* headers/private/netservices/UrlProtocolRoster.h hrev54923
|
||||
* src/kits/network/libnetservices/UrlProtocolRoster.cpp hrev54923
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\file UrlProtocolRoster.h
|
||||
\ingroup netservices
|
||||
\brief Provides the BUrlProtocolRoster interface.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\class BPrivate::Network::BUrlProtocolRoster
|
||||
\ingroup netservices
|
||||
\brief Interfaces for protocol-agnostic operations.
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\fn static BUrlRequest* BUrlProtocolRoster::MakeRequest(const BUrl& url,
|
||||
BDataIO* output, BUrlProtocolListener* listener = NULL,
|
||||
BUrlContext* context = NULL)
|
||||
\brief Create a BUrlRequest that can handle the given BUrl
|
||||
|
||||
\param url The URL to create a request for
|
||||
\param output The BDataIO to output to
|
||||
\param listener The BUrlProtocolListener to be registered with the created
|
||||
BUrlRequest, can be \c NULL
|
||||
\param context The BUrlContext to be registered with the created
|
||||
BUrlRequest, can be \c NULL
|
||||
|
||||
\returns A pointer to the BUrlRequest that can handle the given BUrl.
|
||||
\c NULL will be returned if there aren't any BUrlRequest that can
|
||||
handle the given protocol or if memory couldn't be allocated.
|
||||
*/
|
Loading…
Reference in New Issue
Block a user