HTTPStreamingFileSource Class Reference

#include <HTTPStreamingFileSource.h>

Inheritance diagram for HTTPStreamingFileSource:

Inheritance graph
[legend]
Collaboration diagram for HTTPStreamingFileSource:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void clear ()
virtual void close ()
 HTTPStreamingFileSource (void)
virtual bool isEOF ()
virtual bool isError ()
virtual bool open (string inSourceLocation)=0
virtual bool open (string inSourceLocation, unsigned long inStartByte=0)
virtual unsigned long read (char *outBuffer, unsigned long inNumBytes)
virtual unsigned long seek (unsigned long inPos)
virtual string shouldRetryAt ()
DWORD ThreadProc ()
virtual ~HTTPStreamingFileSource (void)

Static Public Attributes

const unsigned long MEMORY_BUFFER_LOW_TIDE = 1024 * 512 * 3
const unsigned long MEMORY_BUFFER_SIZE = 1024 * 1024 * 2
const int THREAD_EXIT = 1
const int THREAD_RUN = 0

Protected Member Functions

virtual string assembleRequest (string inFilePath, unsigned long inStartByte=0)
virtual string assembleRequest (string inFilePath)
virtual void closeSocket ()
virtual void closeSocket ()
void DataProcessLoop ()
unsigned short getHTTPResponseCode (string inHTTPResponse)
bool httpRequest (string inRequest)
bool httpRequest (string inRequest)
virtual bool setupSocket (string inSourceLocation)
virtual bool setupSocket (string inSourceLocation)
virtual bool splitURL (string inURL)
virtual bool splitURL (string inURL)
bool startThread ()
void unChunk (unsigned char *inBuff, unsigned long inNumBytes)

Protected Attributes

fstream debugLog
fstream fileDump
unsigned long mApparentReadPosition
CCritSec * mBufferLock
unsigned long mChunkRemains
__int64 mContentLength
unsigned long mCurrentAbsoluteReadPosition
string mFileName
bool mFirstPass
unsigned char * mInterBuff
bool mIsBufferFilling
bool mIsChunked
bool mIsEOF
bool mIsFirstChunk
bool mIsOpen
string mLastResponse
CircularBuffermMemoryBuffer
unsigned long mNumLeftovers
unsigned short mPort
string mRetryAt
bool mSeenResponse
string mServerName
SOCKET mSocket
string mSourceLocation
unsigned char * mStreamStartBuffer
unsigned long mStreamStartBufferLength
bool mWasError
fstream rawDump

Static Protected Attributes

const unsigned long RECV_BUFF_SIZE = 1024
const unsigned long STREAM_START_BUFFER_SIZE = 32 * 1024

Constructor & Destructor Documentation

HTTPStreamingFileSource::HTTPStreamingFileSource void   ) 
 

Definition at line 35 of file HTTPStreamingFileSource.cpp.

References debugLog, false, fileDump, mBufferLock, MEMORY_BUFFER_SIZE, mInterBuff, mMemoryBuffer, mStreamStartBuffer, rawDump, RECV_BUFF_SIZE, and true.

HTTPStreamingFileSource::~HTTPStreamingFileSource void   )  [virtual]
 

Definition at line 63 of file HTTPStreamingFileSource.cpp.

References close(), debugLog, fileDump, and rawDump.

Here is the call graph for this function:


Member Function Documentation

string HTTPSocket::assembleRequest string  inFilePath,
unsigned long  inStartByte = 0
[virtual, inherited]
 

Definition at line 136 of file HTTPSocket.cpp.

References HTTPSocket::mServerName, and StringHelper::numToString().

Here is the call graph for this function:

string HTTPSocket::assembleRequest string  inFilePath  )  [virtual, inherited]
 

Definition at line 134 of file HTTPSocket.cpp.

References HTTPSocket::mServerName.

Referenced by open(), HTTPFileSource::open(), and CachedHTTPFileSource::open().

void HTTPStreamingFileSource::clear  )  [virtual]
 

Implements IFilterDataSource.

Definition at line 520 of file HTTPStreamingFileSource.cpp.

References debugLog, mApparentReadPosition, mChunkRemains, mCurrentAbsoluteReadPosition, mFirstPass, mIsFirstChunk, mNumLeftovers, and mRetryAt.

Referenced by seek().

void HTTPStreamingFileSource::close  )  [virtual]
 

Implements IFilterDataSource.

Definition at line 446 of file HTTPStreamingFileSource.cpp.

References HTTPSocket::closeSocket(), and THREAD_EXIT.

Referenced by seek(), and ~HTTPStreamingFileSource().

Here is the call graph for this function:

virtual void HTTPSocket::closeSocket  )  [virtual, inherited]
 

void HTTPSocket::closeSocket  )  [virtual, inherited]
 

Definition at line 205 of file HTTPSocket.cpp.

References HTTPSocket::mSocket.

Referenced by close(), HTTPFileSource::close(), CachedHTTPFileSource::close(), open(), HTTPFileSource::open(), CachedHTTPFileSource::open(), and seek().

void HTTPStreamingFileSource::DataProcessLoop  )  [protected]
 

Definition at line 190 of file HTTPStreamingFileSource.cpp.

References debugLog, getHTTPResponseCode(), mBufferLock, mContentLength, mIsBufferFilling, mIsChunked, mMemoryBuffer, mRetryAt, CircularBuffer::numBytesAvail(), RECV_BUFF_SIZE, StringHelper::stringToNum(), unChunk(), and CircularBuffer::write().

Referenced by ThreadProc().

Here is the call graph for this function:

unsigned short HTTPStreamingFileSource::getHTTPResponseCode string  inHTTPResponse  )  [protected]
 

Definition at line 360 of file HTTPStreamingFileSource.cpp.

References StringHelper::stringToNum().

Referenced by DataProcessLoop().

Here is the call graph for this function:

bool HTTPSocket::httpRequest string  inRequest  )  [inherited]
 

bool HTTPSocket::httpRequest string  inRequest  )  [inherited]
 

Definition at line 141 of file HTTPSocket.cpp.

References HTTPSocket::mSocket.

Referenced by open(), HTTPFileSource::open(), and CachedHTTPFileSource::open().

bool HTTPStreamingFileSource::isEOF  )  [virtual]
 

Implements IFilterDataSource.

Definition at line 542 of file HTTPStreamingFileSource.cpp.

References mBufferLock, mMemoryBuffer, and CircularBuffer::numBytesAvail().

Here is the call graph for this function:

bool HTTPStreamingFileSource::isError  )  [virtual]
 

Implements IFilterDataSource.

Definition at line 538 of file HTTPStreamingFileSource.cpp.

virtual bool IFilterDataSource::open string  inSourceLocation  )  [pure virtual, inherited]
 

Implemented in CachedHTTPFileSource, FilterFileSource, and HTTPFileSource.

Referenced by OggDemuxPacketSourceFilter::resetStream(), OggDemuxSourceFilter::resetStream(), OggDemuxPacketSourceFilter::SetUpPins(), and OggDemuxSourceFilter::SetUpPins().

bool HTTPStreamingFileSource::open string  inSourceLocation,
unsigned long  inStartByte = 0
[virtual]
 

Implements IFilterDataSource.

Definition at line 471 of file HTTPStreamingFileSource.cpp.

References HTTPSocket::assembleRequest(), HTTPSocket::closeSocket(), HTTPSocket::httpRequest(), mBufferLock, mMemoryBuffer, CircularBuffer::reset(), HTTPSocket::setupSocket(), and startThread().

Referenced by seek().

Here is the call graph for this function:

unsigned long HTTPStreamingFileSource::read char *  outBuffer,
unsigned long  inNumBytes
[virtual]
 

Implements IFilterDataSource.

Definition at line 558 of file HTTPStreamingFileSource.cpp.

References debugLog, mApparentReadPosition, mBufferLock, mCurrentAbsoluteReadPosition, mFirstPass, mMemoryBuffer, mStreamStartBuffer, mStreamStartBufferLength, CircularBuffer::numBytesAvail(), CircularBuffer::read(), STREAM_START_BUFFER_SIZE, and THREAD_RUN.

Here is the call graph for this function:

unsigned long HTTPStreamingFileSource::seek unsigned long  inPos  )  [virtual]
 

Implements IFilterDataSource.

Definition at line 403 of file HTTPStreamingFileSource.cpp.

References clear(), close(), HTTPSocket::closeSocket(), mApparentReadPosition, mContentLength, mCurrentAbsoluteReadPosition, mFirstPass, and open().

Here is the call graph for this function:

virtual bool HTTPSocket::setupSocket string  inSourceLocation  )  [virtual, inherited]
 

bool HTTPSocket::setupSocket string  inSourceLocation  )  [virtual, inherited]
 

Definition at line 67 of file HTTPSocket.cpp.

References HTTPSocket::mPort, HTTPSocket::mServerName, HTTPSocket::mSocket, and HTTPSocket::splitURL().

Referenced by open(), HTTPFileSource::open(), and CachedHTTPFileSource::open().

Here is the call graph for this function:

string HTTPStreamingFileSource::shouldRetryAt  )  [virtual]
 

Implements IFilterDataSource.

Definition at line 375 of file HTTPStreamingFileSource.cpp.

virtual bool HTTPSocket::splitURL string  inURL  )  [virtual, inherited]
 

bool HTTPSocket::splitURL string  inURL  )  [virtual, inherited]
 

Definition at line 153 of file HTTPSocket.cpp.

References HTTPSocket::mFileName, HTTPSocket::mPort, and HTTPSocket::mServerName.

Referenced by HTTPSocket::setupSocket().

bool HTTPStreamingFileSource::startThread  )  [protected]
 

Definition at line 464 of file HTTPStreamingFileSource.cpp.

References THREAD_RUN.

Referenced by open().

DWORD HTTPStreamingFileSource::ThreadProc  ) 
 

Definition at line 380 of file HTTPStreamingFileSource.cpp.

References DataProcessLoop(), THREAD_EXIT, and THREAD_RUN.

Here is the call graph for this function:

void HTTPStreamingFileSource::unChunk unsigned char *  inBuff,
unsigned long  inNumBytes
[protected]
 

Definition at line 80 of file HTTPStreamingFileSource.cpp.

References debugLog, fileDump, mChunkRemains, mInterBuff, mIsFirstChunk, mMemoryBuffer, mNumLeftovers, rawDump, and CircularBuffer::write().

Referenced by DataProcessLoop().

Here is the call graph for this function:


Member Data Documentation

fstream HTTPStreamingFileSource::debugLog [protected]
 

Definition at line 92 of file HTTPStreamingFileSource.h.

Referenced by clear(), DataProcessLoop(), HTTPStreamingFileSource(), read(), unChunk(), and ~HTTPStreamingFileSource().

fstream HTTPStreamingFileSource::fileDump [protected]
 

Definition at line 93 of file HTTPStreamingFileSource.h.

Referenced by HTTPStreamingFileSource(), unChunk(), and ~HTTPStreamingFileSource().

unsigned long HTTPStreamingFileSource::mApparentReadPosition [protected]
 

Definition at line 118 of file HTTPStreamingFileSource.h.

Referenced by clear(), read(), and seek().

CCritSec* HTTPStreamingFileSource::mBufferLock [protected]
 

Definition at line 124 of file HTTPStreamingFileSource.h.

Referenced by DataProcessLoop(), HTTPStreamingFileSource(), isEOF(), open(), and read().

unsigned long HTTPStreamingFileSource::mChunkRemains [protected]
 

Definition at line 85 of file HTTPStreamingFileSource.h.

Referenced by clear(), and unChunk().

__int64 HTTPStreamingFileSource::mContentLength [protected]
 

Definition at line 122 of file HTTPStreamingFileSource.h.

Referenced by DataProcessLoop(), and seek().

unsigned long HTTPStreamingFileSource::mCurrentAbsoluteReadPosition [protected]
 

Definition at line 112 of file HTTPStreamingFileSource.h.

Referenced by clear(), read(), and seek().

const unsigned long HTTPStreamingFileSource::MEMORY_BUFFER_LOW_TIDE = 1024 * 512 * 3 [static]
 

Definition at line 54 of file HTTPStreamingFileSource.h.

const unsigned long HTTPStreamingFileSource::MEMORY_BUFFER_SIZE = 1024 * 1024 * 2 [static]
 

Definition at line 53 of file HTTPStreamingFileSource.h.

Referenced by HTTPStreamingFileSource().

string HTTPSocket::mFileName [protected, inherited]
 

Definition at line 51 of file HTTPSocket.h.

Referenced by HTTPSocket::splitURL().

bool HTTPStreamingFileSource::mFirstPass [protected]
 

Definition at line 113 of file HTTPStreamingFileSource.h.

Referenced by clear(), read(), and seek().

unsigned char* HTTPStreamingFileSource::mInterBuff [protected]
 

Definition at line 96 of file HTTPStreamingFileSource.h.

Referenced by HTTPStreamingFileSource(), and unChunk().

bool HTTPStreamingFileSource::mIsBufferFilling [protected]
 

Definition at line 87 of file HTTPStreamingFileSource.h.

Referenced by DataProcessLoop().

bool HTTPStreamingFileSource::mIsChunked [protected]
 

Definition at line 84 of file HTTPStreamingFileSource.h.

Referenced by DataProcessLoop().

bool HTTPSocket::mIsEOF [protected, inherited]
 

Definition at line 58 of file HTTPSocket.h.

bool HTTPStreamingFileSource::mIsFirstChunk [protected]
 

Definition at line 89 of file HTTPStreamingFileSource.h.

Referenced by clear(), and unChunk().

bool HTTPSocket::mIsOpen [protected, inherited]
 

Definition at line 60 of file HTTPSocket.h.

string HTTPSocket::mLastResponse [protected, inherited]
 

Definition at line 53 of file HTTPSocket.h.

CircularBuffer* HTTPStreamingFileSource::mMemoryBuffer [protected]
 

Definition at line 82 of file HTTPStreamingFileSource.h.

Referenced by DataProcessLoop(), HTTPStreamingFileSource(), isEOF(), open(), read(), and unChunk().

unsigned long HTTPStreamingFileSource::mNumLeftovers [protected]
 

Definition at line 97 of file HTTPStreamingFileSource.h.

Referenced by clear(), and unChunk().

unsigned short HTTPSocket::mPort [protected, inherited]
 

Definition at line 52 of file HTTPSocket.h.

Referenced by HTTPSocket::setupSocket(), and HTTPSocket::splitURL().

string HTTPStreamingFileSource::mRetryAt [protected]
 

Definition at line 90 of file HTTPStreamingFileSource.h.

Referenced by clear(), and DataProcessLoop().

bool HTTPSocket::mSeenResponse [protected, inherited]
 

Definition at line 61 of file HTTPSocket.h.

string HTTPSocket::mServerName [protected, inherited]
 

Definition at line 50 of file HTTPSocket.h.

Referenced by HTTPSocket::assembleRequest(), HTTPSocket::setupSocket(), and HTTPSocket::splitURL().

SOCKET HTTPSocket::mSocket [protected, inherited]
 

Definition at line 54 of file HTTPSocket.h.

Referenced by HTTPSocket::closeSocket(), HTTPSocket::httpRequest(), and HTTPSocket::setupSocket().

string HTTPSocket::mSourceLocation [protected, inherited]
 

Definition at line 56 of file HTTPSocket.h.

unsigned char* HTTPStreamingFileSource::mStreamStartBuffer [protected]
 

Definition at line 115 of file HTTPStreamingFileSource.h.

Referenced by HTTPStreamingFileSource(), and read().

unsigned long HTTPStreamingFileSource::mStreamStartBufferLength [protected]
 

Definition at line 116 of file HTTPStreamingFileSource.h.

Referenced by read().

bool HTTPSocket::mWasError [protected, inherited]
 

Definition at line 59 of file HTTPSocket.h.

fstream HTTPStreamingFileSource::rawDump [protected]
 

Definition at line 94 of file HTTPStreamingFileSource.h.

Referenced by HTTPStreamingFileSource(), unChunk(), and ~HTTPStreamingFileSource().

const unsigned long HTTPStreamingFileSource::RECV_BUFF_SIZE = 1024 [static, protected]
 

Definition at line 98 of file HTTPStreamingFileSource.h.

Referenced by DataProcessLoop(), and HTTPStreamingFileSource().

const unsigned long HTTPStreamingFileSource::STREAM_START_BUFFER_SIZE = 32 * 1024 [static, protected]
 

Definition at line 99 of file HTTPStreamingFileSource.h.

Referenced by read().

const int HTTPStreamingFileSource::THREAD_EXIT = 1 [static]
 

Definition at line 57 of file HTTPStreamingFileSource.h.

Referenced by close(), and ThreadProc().

const int HTTPStreamingFileSource::THREAD_RUN = 0 [static]
 

Definition at line 56 of file HTTPStreamingFileSource.h.

Referenced by read(), startThread(), and ThreadProc().


The documentation for this class was generated from the following files:
Generated on Fri Feb 17 00:01:03 2006 for oggdsf by  doxygen 1.3.9