TagLib 1.11 (TagLib: TagLib::ByteVectorStream Class Reference)

TagLib::ByteVectorStream Class Reference

In-memory Stream class using ByteVector for its storage. More...

#include <tbytevectorstream.h>

Inheritance diagram for TagLib::ByteVectorStream:
Collaboration diagram for TagLib::ByteVectorStream:

List of all members.

Public Member Functions

 ByteVectorStream (const ByteVector &data)
virtual ~ByteVectorStream ()
FileName name () const
ByteVector readBlock (unsigned long length)
void writeBlock (const ByteVector &data)
void insert (const ByteVector &data, unsigned long start=0, unsigned long replace=0)
void removeBlock (unsigned long start=0, unsigned long length=0)
bool readOnly () const
bool isOpen () const
void seek (long offset, Position p=Beginning)
void clear ()
long tell () const
long length ()
void truncate (long length)
ByteVectordata ()


Detailed Description

In-memory Stream class using ByteVector for its storage.

Constructor & Destructor Documentation

TagLib::ByteVectorStream::ByteVectorStream ( const ByteVector data  ) 

Construct a File object and opens the file. file should be a be a C-string in the local file system encoding.

virtual TagLib::ByteVectorStream::~ByteVectorStream (  )  [virtual]

Destroys this ByteVectorStream instance.


Member Function Documentation

FileName TagLib::ByteVectorStream::name (  )  const [virtual]

Returns the file name in the local file system encoding.

Implements TagLib::IOStream.

ByteVector TagLib::ByteVectorStream::readBlock ( unsigned long  length  )  [virtual]

Reads a block of size length at the current get pointer.

Implements TagLib::IOStream.

void TagLib::ByteVectorStream::writeBlock ( const ByteVector data  )  [virtual]

Attempts to write the block data at the current get pointer. If the file is currently only opened read only -- i.e. readOnly() returns true -- this attempts to reopen the file in read/write mode.

Note:
This should be used instead of using the streaming output operator for a ByteVector. And even this function is significantly slower than doing output with a char[].

Implements TagLib::IOStream.

void TagLib::ByteVectorStream::insert ( const ByteVector data,
unsigned long  start = 0,
unsigned long  replace = 0 
) [virtual]

Insert data at position start in the file overwriting replace bytes of the original content.

Note:
This method is slow since it requires rewriting all of the file after the insertion point.

Implements TagLib::IOStream.

void TagLib::ByteVectorStream::removeBlock ( unsigned long  start = 0,
unsigned long  length = 0 
) [virtual]

Removes a block of the file starting a start and continuing for length bytes.

Note:
This method is slow since it involves rewriting all of the file after the removed portion.

Implements TagLib::IOStream.

bool TagLib::ByteVectorStream::readOnly (  )  const [virtual]

Returns true if the file is read only (or if the file can not be opened).

Implements TagLib::IOStream.

bool TagLib::ByteVectorStream::isOpen (  )  const [virtual]

Since the file can currently only be opened as an argument to the constructor (sort-of by design), this returns if that open succeeded.

Implements TagLib::IOStream.

void TagLib::ByteVectorStream::seek ( long  offset,
Position  p = Beginning 
) [virtual]

Move the I/O pointer to offset in the file from position p. This defaults to seeking from the beginning of the file.

See also:
Position

Implements TagLib::IOStream.

void TagLib::ByteVectorStream::clear (  )  [virtual]

Reset the end-of-file and error flags on the file.

Reimplemented from TagLib::IOStream.

long TagLib::ByteVectorStream::tell (  )  const [virtual]

Returns the current offset within the file.

Implements TagLib::IOStream.

long TagLib::ByteVectorStream::length (  )  [virtual]

Returns the length of the file.

Implements TagLib::IOStream.

void TagLib::ByteVectorStream::truncate ( long  length  )  [virtual]

Truncates the file to a length.

Implements TagLib::IOStream.

ByteVector* TagLib::ByteVectorStream::data (  ) 


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