xref: /haiku/headers/private/netservices/UrlContext.h (revision 52c4471a3024d2eb81fe88e2c3982b9f8daa5e56)
1 /*
2  * Copyright 2010-2015 Haiku Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #ifndef _B_URL_CONTEXT_H_
8 #define _B_URL_CONTEXT_H_
9 
10 
11 #include <Certificate.h>
12 #include <HttpAuthentication.h>
13 #include <NetworkCookieJar.h>
14 #include <Referenceable.h>
15 
16 
17 namespace BPrivate {
18 
19 namespace Network {
20 
21 
22 class BUrlContext: public BReferenceable {
23 public:
24 								BUrlContext();
25 								~BUrlContext();
26 
27 	// Context modifiers
28 			void				SetCookieJar(
29 									const BNetworkCookieJar& cookieJar);
30 			void				AddAuthentication(const BUrl& url,
31 									const BHttpAuthentication& authentication);
32 			void				SetProxy(BString host, uint16 port);
33 			void				AddCertificateException(const BCertificate& certificate);
34 
35 	// Context accessors
36 			BNetworkCookieJar&	GetCookieJar();
37 			BHttpAuthentication& GetAuthentication(const BUrl& url);
38 			bool				UseProxy();
39 			BString				GetProxyHost();
40 			uint16				GetProxyPort();
41 			bool				HasCertificateException(const BCertificate& certificate);
42 
43 private:
44 			class 				BHttpAuthenticationMap;
45 
46 private:
47 			BNetworkCookieJar	fCookieJar;
48 			BHttpAuthenticationMap* fAuthenticationMap;
49 			typedef BObjectList<const BCertificate> BCertificateSet;
50 			BCertificateSet		fCertificates;
51 
52 			BString				fProxyHost;
53 			uint16				fProxyPort;
54 };
55 
56 
57 } // namespace Network
58 
59 } // namespace BPrivate
60 
61 #endif // _B_URL_CONTEXT_H_
62