a IOHandler with buffer support the buffer is only for read(). write() is not supported the public functions of this class are *not* thread safe! More...
#include <io_handler_buffer_helper.h>
Public Member Functions | |
| IOHandlerBufferHelper (size_t bufSize, size_t initialFillSize) | |
| get an instance of a IOHandlerBufferHelper | |
| virtual | ~IOHandlerBufferHelper () |
| virtual void | open (enum UpnpOpenFileMode mode) |
| Opens a data for the web server. | |
| virtual int | read (char *buf, size_t length) |
| Reads previously opened/initialized data sequentially. | |
| virtual void | seek (off_t offset, int whence) |
| Performs a seek on an open/initialized data. | |
| virtual void | close () |
| Close/free previously opened/initialized data. | |
| virtual int | write (char *buf, size_t length) |
| Writes to previously opened/initialized data sequentially. | |
| void | retain () |
| void | release () |
| int | getRefCount () |
Static Public Member Functions | |
| static void * | operator new (size_t size) |
| static void | operator delete (void *ptr) |
Protected Member Functions | |
| void | startBufferThread () |
| void | stopBufferThread () |
| virtual void | threadProc ()=0 |
Static Protected Member Functions | |
| static void * | staticThreadProc (void *arg) |
Protected Attributes | |
| size_t | bufSize |
| size_t | initialFillSize |
| char * | buffer |
| bool | isOpen |
| bool | eof |
| bool | readError |
| bool | waitForInitialFillSize |
| bool | signalAfterEveryRead |
| bool | checkSocket |
| bool | empty |
| size_t | a |
| size_t | b |
| off_t | posRead |
| bool | seekEnabled |
| bool | doSeek |
| off_t | seekOffset |
| int | seekWhence |
| pthread_t | bufferThread |
| bool | threadShutdown |
| zmm::Ref< Cond > | cond |
| zmm::Ref< Mutex > | mutex |
| mt_atomic_t | _ref_count |
a IOHandler with buffer support the buffer is only for read(). write() is not supported the public functions of this class are *not* thread safe!
Definition at line 45 of file io_handler_buffer_helper.h.
| IOHandlerBufferHelper::IOHandlerBufferHelper | ( | size_t | bufSize, | |
| size_t | initialFillSize | |||
| ) |
get an instance of a IOHandlerBufferHelper
| bufSize | the size of the buffer in bytes | |
| maxChunkSize | the maximum size of the chunks which are read by the buffer | |
| initialFillSize | the number of bytes which have to be in the buffer before the first read at the very beginning or after a seek returns; 0 disables the delay |
Definition at line 42 of file io_handler_buffer_helper.cc.
References _, _Exception, a, b, buffer, checkSocket, cond, doSeek, empty, eof, isOpen, mutex, NULL, posRead, readError, seekEnabled, signalAfterEveryRead, threadShutdown, and waitForInitialFillSize.
| IOHandlerBufferHelper::~IOHandlerBufferHelper | ( | ) | [virtual] |
Definition at line 81 of file io_handler_buffer_helper.cc.
| void IOHandlerBufferHelper::close | ( | ) | [virtual] |
Close/free previously opened/initialized data.
Reimplemented from IOHandler.
Reimplemented in BufferedIOHandler.
Definition at line 189 of file io_handler_buffer_helper.cc.
References _, _Exception, buffer, FREE, isOpen, NULL, and stopBufferThread().
Referenced by ~IOHandlerBufferHelper().
| int Object::getRefCount | ( | ) | [inherited] |
Definition at line 78 of file object.cc.
References zmm::Object::_ref_count, and atomic_get().
| virtual void IOHandlerBufferHelper::open | ( | enum UpnpOpenFileMode | mode | ) | [virtual] |
Opens a data for the web server.
| mode | in which the data will be opened (we only support UPNP_READ) |
Reimplemented from IOHandler.
Reimplemented in BufferedIOHandler.
| void Object::operator delete | ( | void * | ptr | ) | [static, inherited] |
| void * Object::operator new | ( | size_t | size | ) | [static, inherited] |
| virtual int IOHandlerBufferHelper::read | ( | char * | buf, | |
| size_t | length | |||
| ) | [virtual] |
Reads previously opened/initialized data sequentially.
| buf | This buffer will be filled by our read functions. | |
| length | Number of bytes to read. |
Reimplemented from IOHandler.
| void Object::release | ( | ) | [inherited] |
Definition at line 66 of file object.cc.
References zmm::Object::_ref_count, atomic_dec(), and zmm::Object::mutex.
Referenced by zmm::ArrayBase::clear(), zmm::String::operator=(), DSOHash< zmm::Array< CacheObject > >::releaseData(), DSBHash< VT >::releaseData(), DSOHash< zmm::Array< CacheObject > >::remove(), zmm::ArrayBase::remove(), zmm::ArrayBase::removeUnordered(), zmm::ArrayBase::set(), zmm::ArrayBase::~ArrayBase(), DSOHash< zmm::Array< CacheObject > >::~DSOHash(), zmm::ObjectQueue< AutoscanDirectory >::~ObjectQueue(), zmm::ObjectStack< Element >::~ObjectStack(), and zmm::String::~String().
| void Object::retain | ( | ) | [inherited] |
Definition at line 58 of file object.cc.
References zmm::Object::_ref_count, atomic_inc(), and zmm::Object::mutex.
Referenced by zmm::ArrayBase::append(), zmm::ObjectQueue< AutoscanDirectory >::enqueue(), zmm::ArrayBase::insert(), zmm::String::operator=(), zmm::ObjectStack< Element >::push(), DSOHash< zmm::Array< CacheObject > >::put(), DSBHash< VT >::put(), zmm::ArrayBase::set(), and zmm::String::String().
| virtual void IOHandlerBufferHelper::seek | ( | off_t | offset, | |
| int | whence | |||
| ) | [virtual] |
Performs a seek on an open/initialized data.
| offset | Number of bytes to move in the buffer. For seeking forwards positive values are used, for seeking backwards - negative. Offset must be positive if origin is set to SEEK_SET | |
| whence | The position to move relative to. SEEK_CUR to move relative to current position, SEEK_END to move relative to the end of file, SEEK_SET to specify an absolute offset. |
Reimplemented from IOHandler.
| void IOHandlerBufferHelper::startBufferThread | ( | ) | [protected] |
Definition at line 201 of file io_handler_buffer_helper.cc.
References bufferThread, NULL, and staticThreadProc().
| void * IOHandlerBufferHelper::staticThreadProc | ( | void * | arg | ) | [static, protected] |
Definition at line 222 of file io_handler_buffer_helper.cc.
References log_debug, NULL, and threadProc().
Referenced by startBufferThread().
| void IOHandlerBufferHelper::stopBufferThread | ( | ) | [protected] |
Definition at line 211 of file io_handler_buffer_helper.cc.
References AUTOLOCK, AUTOUNLOCK, bufferThread, cond, mutex, NULL, and threadShutdown.
Referenced by close().
| virtual void IOHandlerBufferHelper::threadProc | ( | ) | [protected, pure virtual] |
Implemented in BufferedIOHandler.
Referenced by staticThreadProc().
| virtual int IOHandler::write | ( | char * | buf, | |
| size_t | length | |||
| ) | [virtual, inherited] |
Writes to previously opened/initialized data sequentially.
| buf | Data to be written. | |
| length | Number of bytes to write. |
mt_atomic_t zmm::Object::_ref_count [protected, inherited] |
Definition at line 54 of file object.h.
Referenced by zmm::Object::getRefCount(), zmm::Object::Object(), zmm::Object::release(), and zmm::Object::retain().
size_t IOHandlerBufferHelper::a [protected] |
Definition at line 77 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
size_t IOHandlerBufferHelper::b [protected] |
Definition at line 78 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
char* IOHandlerBufferHelper::buffer [protected] |
Definition at line 67 of file io_handler_buffer_helper.h.
Referenced by close(), IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
pthread_t IOHandlerBufferHelper::bufferThread [protected] |
Definition at line 93 of file io_handler_buffer_helper.h.
Referenced by startBufferThread(), and stopBufferThread().
size_t IOHandlerBufferHelper::bufSize [protected] |
Definition at line 65 of file io_handler_buffer_helper.h.
Referenced by BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::checkSocket [protected] |
Definition at line 73 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
zmm::Ref<Cond> IOHandlerBufferHelper::cond [protected] |
Definition at line 95 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), stopBufferThread(), and BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::doSeek [protected] |
Definition at line 83 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::empty [protected] |
Definition at line 76 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::eof [protected] |
Definition at line 69 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
size_t IOHandlerBufferHelper::initialFillSize [protected] |
Definition at line 66 of file io_handler_buffer_helper.h.
Referenced by BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::isOpen [protected] |
Definition at line 68 of file io_handler_buffer_helper.h.
Referenced by close(), IOHandlerBufferHelper(), and ~IOHandlerBufferHelper().
zmm::Ref<Mutex> IOHandlerBufferHelper::mutex [protected] |
Reimplemented from zmm::Object.
Definition at line 96 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), stopBufferThread(), and BufferedIOHandler::threadProc().
off_t IOHandlerBufferHelper::posRead [protected] |
Definition at line 79 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::readError [protected] |
Definition at line 70 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::seekEnabled [protected] |
Definition at line 82 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper().
off_t IOHandlerBufferHelper::seekOffset [protected] |
Definition at line 84 of file io_handler_buffer_helper.h.
Referenced by BufferedIOHandler::threadProc().
int IOHandlerBufferHelper::seekWhence [protected] |
Definition at line 85 of file io_handler_buffer_helper.h.
Referenced by BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::signalAfterEveryRead [protected] |
Definition at line 72 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper().
bool IOHandlerBufferHelper::threadShutdown [protected] |
Definition at line 94 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), stopBufferThread(), and BufferedIOHandler::threadProc().
bool IOHandlerBufferHelper::waitForInitialFillSize [protected] |
Definition at line 71 of file io_handler_buffer_helper.h.
Referenced by IOHandlerBufferHelper(), and BufferedIOHandler::threadProc().
1.6.1