45939109b4
Integrated the classes in the Network Kit (libbnetapi.so). Only the foundation classed BUrl, BUrlContext, BNetworkCookie, BNetworkCookieJar and the private HttpTime code is currently compiled. The BUrlProtocol currently contains some misplaced BUrlProtocolHttp specific stuff, and the HTTP stuff itself has a dependency on libcrypto and should live in an add-on instead. I've sprinkled some TODOs in the code, and I've done some renaming compared to the last version of the GSoC patch. Any help to bring this further along is appreciated. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39161 a95241bf-73f2-0310-859d-f6bbb57e9c96
85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
/*
|
|
* Copyright 2010 Haiku Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _B_HTTP_HEADERS_H_
|
|
#define _B_HTTP_HEADERS_H_
|
|
|
|
|
|
#include <List.h>
|
|
#include <String.h>
|
|
|
|
|
|
class BHttpHeader {
|
|
public:
|
|
BHttpHeader();
|
|
BHttpHeader(const char* string);
|
|
BHttpHeader(const char* name,
|
|
const char* value);
|
|
BHttpHeader(const BHttpHeader& copy);
|
|
|
|
// Header data modification
|
|
void SetName(const char* name);
|
|
void SetValue(const char* value);
|
|
bool SetHeader(const char* string);
|
|
|
|
// Header data access
|
|
const char* Name() const;
|
|
const char* Value() const;
|
|
const char* Header() const;
|
|
|
|
// Header data test
|
|
bool NameIs(const char* name) const;
|
|
|
|
// Overloaded members
|
|
BHttpHeader& operator=(const BHttpHeader& other);
|
|
|
|
private:
|
|
BString fName;
|
|
BString fValue;
|
|
|
|
mutable BString fRawHeader;
|
|
mutable bool fRawHeaderValid;
|
|
};
|
|
|
|
|
|
class BHttpHeaders {
|
|
public:
|
|
BHttpHeaders();
|
|
BHttpHeaders(const BHttpHeaders& copy);
|
|
~BHttpHeaders();
|
|
|
|
// Header list access
|
|
const char* HeaderValue(const char* name) const;
|
|
BHttpHeader& HeaderAt(int32 index) const;
|
|
|
|
// Header count
|
|
int32 CountHeaders() const;
|
|
|
|
// Header list tests
|
|
int32 HasHeader(const char* name) const;
|
|
|
|
// Header add or replacement
|
|
bool AddHeader(const char* line);
|
|
bool AddHeader(const char* name,
|
|
const char* value);
|
|
bool AddHeader(const char* name,
|
|
int32 value);
|
|
|
|
// Header deletion
|
|
void Clear();
|
|
|
|
// Overloaded operators
|
|
BHttpHeaders& operator=(const BHttpHeaders& other);
|
|
BHttpHeader& operator[](int32 index) const;
|
|
const char* operator[](const char* name) const;
|
|
|
|
private:
|
|
void _EraseData();
|
|
|
|
private:
|
|
BList fHeaderList;
|
|
};
|
|
|
|
#endif // _B_HTTP_HEADERS_H_
|