Inherits DD::Image::Writer.
Public Member Functions | |
FileWriter (Write *) | |
~FileWriter () | |
virtual void | finish () |
Called when processing is finished for the current file. | |
Protected Member Functions | |
bool | open () |
bool | close () |
bool | write (const void *, FILE_OFFSET) |
bool | write (FILE_OFFSET, const void *, FILE_OFFSET) |
bool | seek (FILE_OFFSET) |
FILE_OFFSET | tell () const |
std::string | getTempFileName (const char *pActualFileName=NULL) const |
Returns a temporary file name for the current output file (e. g. filename.ext.tmp) | |
Protected Attributes | |
void * | file |
Actually a FILE* but I don't want the <stdio.h> header! | |
FILE_OFFSET | offset |
Current offset into file. | |
Related Functions | |
(Note that these are not member functions.) | |
typedef unsigned long | FILE_OFFSET |
typedef unsigned long | FILE_OFFSET |
Writer subclass to write a single Unix file. You must subclass this and implement several virtual functions to write pieces of a file. This takes care of opening and closing the file.
FileWriter::FileWriter | ( | Write * | iop | ) |
FileWriter::~FileWriter | ( | ) |
bool FileWriter::open | ( | ) | [protected] |
Open the output file. This file is created with a temporary name so that the original file is not replaced until the write is successful. This returns false and calls iop->error() if it can't open the file.
References DD::Image::Op::critical(), file, DD::Image::Writer::filename(), getTempFileName(), DD::Image::Writer::iop, and offset.
bool FileWriter::close | ( | ) | [protected] |
Close the output file. If there have not been any errors this will mv the temporary file to the correct place.
References DD::Image::Writer::aborted(), DD::Image::Op::critical(), file, DD::Image::Writer::filename(), getTempFileName(), and DD::Image::Writer::iop.
bool FileWriter::write | ( | const void * | buf, |
FILE_OFFSET | length | ||
) | [protected] |
Write length bytes to the file. Call iop->error() on any errors and returns false. Returns true on success.
References DD::Image::Op::critical(), file, DD::Image::Writer::iop, and offset.
Referenced by write().
bool FileWriter::write | ( | FILE_OFFSET | off, |
const void * | buf, | ||
FILE_OFFSET | length | ||
) | [protected] |
bool FileWriter::seek | ( | FILE_OFFSET | off | ) | [protected] |
Move the write pointer to offset. This is done efficiently if the pointer is already at that point. Calls iop->error() on any errors and returns false. Returns true on success.
References DD::Image::Op::critical(), file, DD::Image::Writer::iop, and offset.
Referenced by write().
FILE_OFFSET DD::Image::FileWriter::tell | ( | ) | const [inline, protected] |
Returns where the pointer currently is.
std::string FileWriter::getTempFileName | ( | const char * | pActualFileName = NULL | ) | const [protected] |
Returns a temporary file name for the current output file (e. g. filename.ext.tmp)
Returns a temporary file name for the given actual file name. e. g. filename.ext -> filename.ext.tmp Pass in NULL to use the current filename().
References DD::Image::Writer::filename().
typedef unsigned long FILE_OFFSET [related] |
This type may need to be replaced on 64-bit file systems.
typedef unsigned long FILE_OFFSET [related] |
This type may need to be replaced on 64-bit file systems.