TagLib API Documentation
Public Member Functions | Static Protected Member Functions | List of all members
TagLib::FileStream Class Reference

I/O stream with data from a file. More...

#include <tfilestream.h>

Inheritance diagram for TagLib::FileStream:
[legend]
Collaboration diagram for TagLib::FileStream:
[legend]

Public Member Functions

 FileStream (FileName fileName, bool openReadOnly=false)
 
 FileStream (int fileDescriptor, bool openReadOnly=false)
 
 ~FileStream () override
 
 FileStream (const FileStream &)=delete
 
FileStreamoperator= (const FileStream &)=delete
 
FileName name () const override
 
ByteVector readBlock (size_t length) override
 
void writeBlock (const ByteVector &data) override
 
void insert (const ByteVector &data, offset_t start=0, size_t replace=0) override
 
void removeBlock (offset_t start=0, size_t length=0) override
 
bool readOnly () const override
 
bool isOpen () const override
 
void seek (offset_t offset, Position p=Beginning) override
 
void clear () override
 
offset_t tell () const override
 
offset_t length () override
 
void truncate (offset_t length) override
 
- Public Member Functions inherited from TagLib::IOStream
 IOStream ()
 
virtual ~IOStream ()
 
 IOStream (const IOStream &)=delete
 
IOStreamoperator= (const IOStream &)=delete
 
virtual FileName name () const =0
 
virtual ByteVector readBlock (size_t length)=0
 
virtual void writeBlock (const ByteVector &data)=0
 
virtual void insert (const ByteVector &data, offset_t start=0, size_t replace=0)=0
 
virtual void removeBlock (offset_t start=0, size_t length=0)=0
 
virtual bool readOnly () const =0
 
virtual bool isOpen () const =0
 
virtual void seek (offset_t offset, Position p=Beginning)=0
 
virtual void clear ()
 
virtual offset_t tell () const =0
 
virtual offset_t length ()=0
 
virtual void truncate (offset_t length)=0
 

Static Protected Member Functions

static unsigned int bufferSize ()
 

Additional Inherited Members

- Public Types inherited from TagLib::IOStream
enum  Position { Beginning , Current , End }
 

Detailed Description

I/O stream with data from a file.

Constructor & Destructor Documentation

◆ FileStream() [1/3]

TagLib::FileStream::FileStream ( FileName  fileName,
bool  openReadOnly = false 
)

Construct a FileStream object and open the fileName. fileName should be a C-string in the local file system encoding.

◆ FileStream() [2/3]

TagLib::FileStream::FileStream ( int  fileDescriptor,
bool  openReadOnly = false 
)

Construct a FileStream object using an existing fileDescriptor.

◆ ~FileStream()

TagLib::FileStream::~FileStream ( )
override

Destroys this FileStream instance.

◆ FileStream() [3/3]

TagLib::FileStream::FileStream ( const FileStream )
delete

Member Function Documentation

◆ bufferSize()

static unsigned int TagLib::FileStream::bufferSize ( )
staticprotected

Returns the buffer size that is used for internal buffering.

◆ clear()

void TagLib::FileStream::clear ( )
overridevirtual

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

Reimplemented from TagLib::IOStream.

◆ insert()

void TagLib::FileStream::insert ( const ByteVector data,
offset_t  start = 0,
size_t  replace = 0 
)
overridevirtual

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.

◆ isOpen()

bool TagLib::FileStream::isOpen ( ) const
overridevirtual

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.

◆ length()

offset_t TagLib::FileStream::length ( )
overridevirtual

Returns the length of the file.

Implements TagLib::IOStream.

◆ name()

FileName TagLib::FileStream::name ( ) const
overridevirtual

Returns the file name in the local file system encoding.

Implements TagLib::IOStream.

◆ operator=()

FileStream & TagLib::FileStream::operator= ( const FileStream )
delete

◆ readBlock()

ByteVector TagLib::FileStream::readBlock ( size_t  length)
overridevirtual

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

Implements TagLib::IOStream.

◆ readOnly()

bool TagLib::FileStream::readOnly ( ) const
overridevirtual

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

Implements TagLib::IOStream.

◆ removeBlock()

void TagLib::FileStream::removeBlock ( offset_t  start = 0,
size_t  length = 0 
)
overridevirtual

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.

◆ seek()

void TagLib::FileStream::seek ( offset_t  offset,
Position  p = Beginning 
)
overridevirtual

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.

◆ tell()

offset_t TagLib::FileStream::tell ( ) const
overridevirtual

Returns the current offset within the file.

Implements TagLib::IOStream.

◆ truncate()

void TagLib::FileStream::truncate ( offset_t  length)
overridevirtual

Truncates the file to a length.

Implements TagLib::IOStream.

◆ writeBlock()

void TagLib::FileStream::writeBlock ( const ByteVector data)
overridevirtual

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.


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