ce64ffdb90
In order to prevent classes between libnetapi.so with the legacy API and applications using the libnetservices.a library, the latter will have the classes in a distinct namespace. In the implementation, both libbnetapi.so and libnetservices.a will use the same header and source files. If LIBNETAPI_DEPRECATED is defined during build, the headers and source will have binary compatible behavior. Otherwise, the classes and other objects will be put in the HaikuExt namespace. In order to build the libbnetapi.so and libnetservices.a with the proper build configuration, there is a stub `src/kits/net/libnetapi_deprecated` folder that applies the special configuration to the source files. Currently HaikuDepot, Webpositive, libshared.a and the http_streamer add on use the compatible API in libbnetapi.so. Change-Id: Ic73e9f271ef75749adda46f6f72e9a0b2851b461 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3667 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
66 lines
1.4 KiB
C++
66 lines
1.4 KiB
C++
/*
|
|
* Copyright 2010-2015 Haiku Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
|
|
|
|
#ifndef _B_URL_CONTEXT_H_
|
|
#define _B_URL_CONTEXT_H_
|
|
|
|
|
|
#include <Certificate.h>
|
|
#include <HttpAuthentication.h>
|
|
#include <NetworkCookieJar.h>
|
|
#include <Referenceable.h>
|
|
|
|
|
|
#ifndef LIBNETAPI_DEPRECATED
|
|
namespace BPrivate {
|
|
|
|
namespace Network {
|
|
#endif
|
|
|
|
class BUrlContext: public BReferenceable {
|
|
public:
|
|
BUrlContext();
|
|
~BUrlContext();
|
|
|
|
// Context modifiers
|
|
void SetCookieJar(
|
|
const BNetworkCookieJar& cookieJar);
|
|
void AddAuthentication(const BUrl& url,
|
|
const BHttpAuthentication& authentication);
|
|
void SetProxy(BString host, uint16 port);
|
|
void AddCertificateException(const BCertificate& certificate);
|
|
|
|
// Context accessors
|
|
BNetworkCookieJar& GetCookieJar();
|
|
BHttpAuthentication& GetAuthentication(const BUrl& url);
|
|
bool UseProxy();
|
|
BString GetProxyHost();
|
|
uint16 GetProxyPort();
|
|
bool HasCertificateException(const BCertificate& certificate);
|
|
|
|
private:
|
|
class BHttpAuthenticationMap;
|
|
|
|
private:
|
|
BNetworkCookieJar fCookieJar;
|
|
BHttpAuthenticationMap* fAuthenticationMap;
|
|
typedef BObjectList<const BCertificate> BCertificateSet;
|
|
BCertificateSet fCertificates;
|
|
|
|
BString fProxyHost;
|
|
uint16 fProxyPort;
|
|
};
|
|
|
|
|
|
#ifndef LIBNETAPI_DEPRECATED
|
|
} // namespace Network
|
|
|
|
} // namespace BPrivate
|
|
#endif
|
|
|
|
|
|
#endif // _B_URL_CONTEXT_H_
|