#include <HttpHeaderRange.h>

Collaboration diagram for HttpHdrRange:

Public Types

typedef std::vector
< HttpHdrRangeSpec * >
::iterator 
iterator
 
typedef std::vector
< HttpHdrRangeSpec * >
::const_iterator 
const_iterator
 

Public Member Functions

 HttpHdrRange ()
 
 HttpHdrRange (HttpHdrRange const &)
 
 ~HttpHdrRange ()
 
HttpHdrRangeoperator= (HttpHdrRange const &)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
int canonize (int64_t)
 
int canonize (HttpReply *rep)
 
bool parseInit (const String *range_spec)
 
void packInto (Packable *p) const
 
bool isComplex () const
 
bool willBeComplex () const
 
int64_t firstOffset () const
 
int64_t lowestOffset (int64_t) const
 
bool offsetLimitExceeded (const int64_t limit) const
 
bool contains (const HttpHdrRangeSpec &r) const
 

Static Public Member Functions

static HttpHdrRangeParseCreate (const String *range_spec)
 

Public Attributes

std::vector< HttpHdrRangeSpec * > specs
 

Static Public Attributes

static size_t ParsedCount = 0
 

Private Member Functions

 MEMPROXY_CLASS (HttpHdrRange)
 
void getCanonizedSpecs (std::vector< HttpHdrRangeSpec * > &copy)
 
void merge (std::vector< HttpHdrRangeSpec * > &basis)
 

Private Attributes

int64_t clen
 

Detailed Description

There may be more than one byte range specified in the request. This object holds all range specs in order of their appearence in the request because we SHOULD preserve that order.

Definition at line 48 of file HttpHeaderRange.h.

Member Typedef Documentation

Constructor & Destructor Documentation

HttpHdrRange::HttpHdrRange ( )

Definition at line 204 of file HttpHdrRange.cc.

Referenced by ParseCreate().

HttpHdrRange::HttpHdrRange ( HttpHdrRange const &  old)

Definition at line 269 of file HttpHdrRange.cc.

References assert, begin(), end(), i, and specs.

HttpHdrRange::~HttpHdrRange ( )

Definition at line 261 of file HttpHdrRange.cc.

References specs.

Member Function Documentation

HttpHdrRange::const_iterator HttpHdrRange::begin ( ) const

Definition at line 294 of file HttpHdrRange.cc.

References specs.

int HttpHdrRange::canonize ( int64_t  newClen)

Definition at line 384 of file HttpHdrRange.cc.

References clen, debugs, getCanonizedSpecs(), merge(), and specs.

Referenced by canonize(), and testRangeCanonization().

int HttpHdrRange::canonize ( HttpReply rep)
HttpHdrRange::const_iterator HttpHdrRange::end ( ) const

Definition at line 300 of file HttpHdrRange.cc.

References specs.

int64_t HttpHdrRange::firstOffset ( ) const

Definition at line 457 of file HttpHdrRange.cc.

References begin(), end(), known_spec, and HttpHdrRangeSpec::UnknownPosition.

Referenced by offsetLimitExceeded().

void HttpHdrRange::getCanonizedSpecs ( std::vector< HttpHdrRangeSpec * > &  copy)
private

Definition at line 347 of file HttpHdrRange.cc.

References begin(), clen, debugs, end(), and specs.

Referenced by canonize().

bool HttpHdrRange::isComplex ( ) const

Definition at line 400 of file HttpHdrRange.cc.

References assert, begin(), and end().

int64_t HttpHdrRange::lowestOffset ( int64_t  size) const

Definition at line 479 of file HttpHdrRange.cc.

References begin(), end(), known_spec, and HttpHdrRangeSpec::UnknownPosition.

Referenced by clientInterpretRequestHeaders().

HttpHdrRange::MEMPROXY_CLASS ( HttpHdrRange  )
private
void HttpHdrRange::merge ( std::vector< HttpHdrRangeSpec * > &  basis)
private

Definition at line 321 of file HttpHdrRange.cc.

References debugs, i, and specs.

Referenced by canonize().

bool HttpHdrRange::offsetLimitExceeded ( const int64_t  limit) const

Definition at line 508 of file HttpHdrRange.cc.

References firstOffset().

Referenced by HttpStateData::decideIfWeDoRanges().

HttpHdrRange& HttpHdrRange::operator= ( HttpHdrRange const &  )
void HttpHdrRange::packInto ( Packable p) const

Definition at line 306 of file HttpHdrRange.cc.

References Packable::append(), begin(), and end().

Referenced by HttpHeader::putRange().

HttpHdrRange * HttpHdrRange::ParseCreate ( const String range_spec)
static

Definition at line 208 of file HttpHdrRange.cc.

References HttpHdrRange(), NULL, and parseInit().

Referenced by HttpHeader::getRange(), rangeFromString(), and testRangeParser().

bool HttpHdrRange::parseInit ( const String range_spec)
bool HttpHdrRange::willBeComplex ( ) const

Definition at line 426 of file HttpHdrRange.cc.

References assert, begin(), end(), and known_spec.

Member Data Documentation

int64_t HttpHdrRange::clen
private

Definition at line 87 of file HttpHeaderRange.h.

Referenced by canonize(), and getCanonizedSpecs().

size_t HttpHdrRange::ParsedCount = 0
static

Definition at line 53 of file HttpHeaderRange.h.

Referenced by parseInit().


The documentation for this class was generated from the following files:

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors