bitz-server  1.0.0
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
icap::Header Class Reference
Inheritance diagram for icap::Header:
icap::RequestHeader icap::ResponseHeader

Classes

struct  encapsulated_header_compare
 

Public Types

typedef std::map< std::string, std::string > headers_t
 
typedef headers_t::iterator headers_index_t
 
typedef std::map< std::string, int > encapsulated_header_t
 
typedef encapsulated_header_t::iterator encapsulated_header_index_t
 
typedef std::pair< std::string, int > encapsulated_header_data_t
 

Public Member Functions

const headers_t & headers () const throw ()
 
const std::string value (const std::string &key) throw ()
 
const int encapsulated_header (const std::string &entity) throw ()
 
virtual void attach (std::string key, std::string value) throw ()
 
virtual bool attach_encapsulated (std::string header_value) throw ()
 
virtual void update_encapsulated (const payload_t &payload) throw ()
 
virtual bool remove (std::string key) throw ()
 
virtual const std::string encapsulated_header_str () throw ()
 
virtual std::vector< encapsulated_header_data_t > sort_encapsulated_header ()
 

Protected Attributes

headers_t _headers
 
encapsulated_header_t _encapsulated
 

Member Function Documentation

void icap::Header::attach ( std::string  key,
std::string  value 
)
throw (
)
virtual

Attach header data into the header

e.g.
Host: icap-server.net
Encapsulated: req-hdr=0, null-body=170
[key]: [value]
Parameters
keyheader key
valueheader value
bool icap::Header::attach_encapsulated ( std::string  header_value)
throw (
)
virtual

Attach Encapsulated header data. This method should only be used when reading a raw request / response. Consider using update_encapsulated() method for other scenarios.

e.g.
Encapsulated: req-hdr=0, req-body=412
Encapsulated: req-hdr=0, res-hdr=822, res-body=1655
Encapsulated: [header_value]
Parameters
header_valueEncapsulated header value
Returns
boolean to denote success or failure
const int icap::Header::encapsulated_header ( const std::string &  entity)
throw (
)

Return Encapsulated header value for the given entity or -1 if the given entity is invalid.

Parameters
entityencapsulated header entity
Returns
-1 | encapsulated header value
const std::string icap::Header::encapsulated_header_str ( )
throw (
)
virtual

Return Encapsulated header as a std::string value.

Returns
encapsulated header value (e.g. res-hdr=0, res-body=213)
const Header::headers_t & icap::Header::headers ( ) const
throw (
)

Return headers

Returns
headers
bool icap::Header::remove ( std::string  key)
throw (
)
virtual

Remove header data from the header instance with the given key

Parameters
keyheader key
Returns
boolean to denote success or failure
std::vector< Header::encapsulated_header_data_t > icap::Header::sort_encapsulated_header ( )
virtual

Sort the encapsulated header data and return a std::vector of encapsulated_header_data_t. The actual header data won't be changed.

Returns
sorted encapsulated header
void icap::Header::update_encapsulated ( const payload_t payload)
throw (
)
virtual

Update Encapsulated header data using the passed in (icap::payload_t) payload. When the request / response has been populated with the payload, calling this method will update the encapsulated header entities with appropriate values.

This methos will always succeed.

Parameters
payloadrequest or response payload
const std::string icap::Header::value ( const std::string &  key)
throw (
)

Returns the header value for the given header key or an empty string if the header is not found.

Parameters
keyheader key
Returns
header value