895fa41e0b
* Each BHttpAuthentication object is locked on all field accesses, * They are owned by the BUrlContext and never deleted, so there is no need for reference-counting them, * The BUrlContext itself is now reference counted, and all BUrlRequests hold a reference to it. This makes sure using the BHttpAuthentication objects from requests is thread-safe.
43 lines
1022 B
C++
43 lines
1022 B
C++
/*
|
|
* Copyright 2010-2014 Haiku Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _B_URL_CONTEXT_H_
|
|
#define _B_URL_CONTEXT_H_
|
|
|
|
|
|
#include <HttpAuthentication.h>
|
|
#include <NetworkCookieJar.h>
|
|
#include <Referenceable.h>
|
|
|
|
|
|
namespace BPrivate {
|
|
template <class key, class value> class SynchronizedHashMap;
|
|
class HashString;
|
|
}
|
|
|
|
|
|
class BUrlContext: public BReferenceable {
|
|
public:
|
|
BUrlContext();
|
|
~BUrlContext();
|
|
|
|
// Context modifiers
|
|
void SetCookieJar(
|
|
const BNetworkCookieJar& cookieJar);
|
|
void AddAuthentication(const BUrl& url,
|
|
const BHttpAuthentication& authentication);
|
|
|
|
// Context accessors
|
|
BNetworkCookieJar& GetCookieJar();
|
|
BHttpAuthentication& GetAuthentication(const BUrl& url);
|
|
|
|
private:
|
|
BNetworkCookieJar fCookieJar;
|
|
typedef BPrivate::SynchronizedHashMap<BPrivate::HashString,
|
|
BHttpAuthentication*> BHttpAuthenticationMap;
|
|
BHttpAuthenticationMap* fAuthenticationMap;
|
|
};
|
|
|
|
#endif // _B_URL_CONTEXT_H_
|