603e0bdf62
These classes have been moved to the public API too soon, and they need some more time to mature before they can be declared stable. Change-Id: I9c52a8e6cc103922abde7a6b911fe0c3e6bf5700 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3665 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
91 lines
2.0 KiB
C++
91 lines
2.0 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 <Message.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);
|
|
|
|
// Archiving
|
|
void PopulateFromArchive(BMessage*);
|
|
void Archive(BMessage*) const;
|
|
|
|
// 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();
|
|
bool _AddOrDeleteHeader(BHttpHeader* header);
|
|
|
|
private:
|
|
BList fHeaderList;
|
|
};
|
|
|
|
#endif // _B_HTTP_HEADERS_H_
|