ProcessIOHandler Class Reference

Allows the web server to read from a fifo. More...

#include <process_io_handler.h>

Inheritance diagram for ProcessIOHandler:
IOHandler zmm::Object

Public Member Functions

 ProcessIOHandler (zmm::String filename, zmm::Ref< Executor > main_proc, zmm::Ref< zmm::Array< ProcListItem > > proclist=nil, bool ignoreSeek=false)
 Sets the filename to work with.
virtual void open (IN enum UpnpOpenFileMode mode)
 Opens file for reading (writing is not supported).
virtual int read (OUT char *buf, IN size_t length)
 Reads a previously opened file sequentially.
virtual int write (OUT char *buf, IN size_t length)
 Writes to a previously opened file.
virtual void seek (IN off_t offset, IN int whence)
 Performs seek on an open file.
virtual void close ()
 Close a previously opened file and kills the kill_pid process.
 ~ProcessIOHandler ()
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 int write (char *buf, size_t length)
 Writes to previously opened/initialized data sequentially.
virtual void seek (off_t offset, int whence)
 Performs a seek on an open/initialized data.
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

bool abort ()
void killall ()
void registerAll ()
void unregisterAll ()

Protected Attributes

zmm::Ref< zmm::Array
< ProcListItem > > 
proclist
 List of associated processes.
zmm::Ref< Executormain_proc
 Main process used for reading.
zmm::String filename
 name of the file or fifo to read the data from
int fd
 file descriptor
bool ignore_seek
 if this flag is set seek on a fifo will not return an error
mt_atomic_t _ref_count
pthread_mutex_t mutex

Detailed Description

Allows the web server to read from a fifo.

Definition at line 55 of file process_io_handler.h.


Constructor & Destructor Documentation

ProcessIOHandler::ProcessIOHandler ( zmm::String  filename,
zmm::Ref< Executor main_proc,
zmm::Ref< zmm::Array< ProcListItem > >  proclist = nil,
bool  ignoreSeek = false 
)

Sets the filename to work with.

Parameters:
filename to read the data from
proclist associated processes that will be terminated once they are no longer needed
ProcessIOHandler::~ProcessIOHandler (  ) 

Member Function Documentation

bool ProcessIOHandler::abort (  )  [protected]
virtual void ProcessIOHandler::close (  )  [virtual]

Close a previously opened file and kills the kill_pid process.

Reimplemented from IOHandler.

int Object::getRefCount (  )  [inherited]

Definition at line 78 of file object.cc.

References zmm::Object::_ref_count, and atomic_get().

void ProcessIOHandler::killall (  )  [protected]
virtual void IOHandler::open ( enum UpnpOpenFileMode  mode  )  [virtual, inherited]

Opens a data for the web server.

Parameters:
mode in which the data will be opened (we only support UPNP_READ)
Todo:
Genych, ya tut che to zapamyatowal kak gawno rabotaet? kto filename poluchaet??

Reimplemented in BufferedIOHandler, and IOHandlerBufferHelper.

virtual void ProcessIOHandler::open ( IN enum UpnpOpenFileMode  mode  )  [virtual]

Opens file for reading (writing is not supported).

void Object::operator delete ( void *  ptr  )  [static, inherited]

Definition at line 87 of file object.cc.

References FREE.

void * Object::operator new ( size_t  size  )  [static, inherited]

Definition at line 83 of file object.cc.

References MALLOC.

virtual int IOHandler::read ( char *  buf,
size_t  length 
) [virtual, inherited]

Reads previously opened/initialized data sequentially.

Parameters:
buf This buffer will be filled by our read functions.
length Number of bytes to read.

Reimplemented in IOHandlerBufferHelper.

Referenced by web_read().

virtual int ProcessIOHandler::read ( OUT char *  buf,
IN size_t  length 
) [virtual]

Reads a previously opened file sequentially.

Parameters:
buf Data from the file will be copied into this buffer.
length Number of bytes to be copied into the buffer.
void ProcessIOHandler::registerAll (  )  [protected]
void Object::release (  )  [inherited]
void Object::retain (  )  [inherited]
virtual void IOHandler::seek ( off_t  offset,
int  whence 
) [virtual, inherited]

Performs a seek on an open/initialized data.

Parameters:
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 in IOHandlerBufferHelper.

Referenced by web_seek().

virtual void ProcessIOHandler::seek ( IN off_t  offset,
IN int  whence 
) [virtual]

Performs seek on an open file.

Parameters:
offset Number of bytes to move in the file. 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.
void ProcessIOHandler::unregisterAll (  )  [protected]
virtual int IOHandler::write ( char *  buf,
size_t  length 
) [virtual, inherited]

Writes to previously opened/initialized data sequentially.

Parameters:
buf Data to be written.
length Number of bytes to write.
virtual int ProcessIOHandler::write ( OUT char *  buf,
IN size_t  length 
) [virtual]

Writes to a previously opened file.

Parameters:
buf Data from the buffer will be written to the file.
length Number of bytes to be written from the buffer.
Returns:
number of bytes written.

Field Documentation

mt_atomic_t zmm::Object::_ref_count [protected, inherited]
int ProcessIOHandler::fd [protected]

file descriptor

Definition at line 106 of file process_io_handler.h.

name of the file or fifo to read the data from

Definition at line 103 of file process_io_handler.h.

if this flag is set seek on a fifo will not return an error

Definition at line 109 of file process_io_handler.h.

Main process used for reading.

Definition at line 100 of file process_io_handler.h.

pthread_mutex_t zmm::Object::mutex [protected, inherited]

List of associated processes.

Definition at line 97 of file process_io_handler.h.


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

Generated on Fri Mar 26 20:16:57 2010 for MediaTomb by  doxygen 1.6.1