bitz-server  2.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

◆ attach()

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

◆ attach_encapsulated()

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

◆ encapsulated_header()

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

◆ encapsulated_header_str()

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)

◆ headers()

const Header::headers_t & icap::Header::headers ( ) const
throw (
)

Return headers

Returns
headers

◆ remove()

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

◆ sort_encapsulated_header()

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

◆ update_encapsulated()

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

◆ value()

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