Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

qgar::File Class Reference
[Files]

#include <qgarlib/File.H>

Inheritance diagram for qgar::File:

qgar::AbstractFile List of all members.

Detailed Description

Qgar regular file.

To be typically used to save and restore serialized objects.

Author:
Gérald Masini
Date:
Jul, 3 2001 18:00
Since:
Qgar 1.0

Definition at line 65 of file File.H.

Public Member Functions

Constructors
 File (const char *aFileName)
 Create a file with given name.
Destructor
virtual ~File ()
 Virtual destructor.
Access to file characteristics
std::fstream & fileStream ()
 Get file stream.
const char *const fileName () const
 Get file name.
QGEfileStatus fileStatus () const
 Get current file status.
Opening
virtual void openRONLY () throw (QgarErrorIO)
 Open in read-only mode.
virtual void openWONLY () throw (QgarErrorIO)
 Open in write-only mode.
virtual void openAPPEND () throw (QgarErrorIO)
 Open in append mode.
virtual void openRW () throw (QgarErrorIO)
 Open in read-write mode.
virtual void openRA () throw (QgarErrorIO)
 Open in read-append mode.
Closing
virtual void close ()
 Close the file.
Checking status
virtual void isOpenR () throw (QgarErrorUser)
 Abort if the file is not open in a mode allowing reading.
virtual void isOpenW () throw (QgarErrorUser)
 Abort if the file is not open in a mode allowing writing.
virtual void isOpenA () throw (QgarErrorUser)
 Abort if the file is not open in a mode allowing appending.
virtual void isOpenRW () throw (QgarErrorUser)
 Abort if the file is not open in read-write mode.
virtual void isOpenRA () throw (QgarErrorUser)
 Abort if the file is not open in readi-append mode.

Protected Member Functions

Headers & footers
virtual void readHeader ()
 Default to read file header: No effect.
virtual void writeHeader ()
 Default to write header into the file: No effect.
virtual void writeFooter ()
 Default to write footer into the file: No effect.

Protected Attributes

Representation of a file
char * _fileName
 File name.
QGEfileStatus _fileStatus
 File status.
std::fstream _fileStream
 Associated file stream.


Constructor & Destructor Documentation

qgar::File::File const char *  aFileName  ) 
 

Create a file with given name.

Parameters:
aFileName name of the file to be created
Warning:
The file is closed and must be opened to be used.

Definition at line 57 of file File.C.

qgar::File::~File  )  [virtual]
 

Virtual destructor.

Definition at line 73 of file File.C.


Member Function Documentation

void qgar::AbstractFile::close  )  [virtual, inherited]
 

Close the file.

No effect is the file is already closed.

Warning:
If the file is currently open in write-only or read-write modes, a footer is written into the file using function qgar::AbstractFile::writeFooter.

Definition at line 251 of file AbstractFile.C.

References qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::QGE_FILE_STATUS_CLOSED, qgar::QGE_FILE_STATUS_READ_WRITE, qgar::QGE_FILE_STATUS_WRITE_ONLY, and qgar::AbstractFile::writeFooter().

Referenced by qgar::GenImage< T, CheckPolicy >::GenImage(), qgar::MapleFile::MapleFile(), qgar::AbstractFile::openAPPEND(), qgar::AbstractFile::openRA(), qgar::AbstractFile::openRONLY(), qgar::AbstractFile::openRW(), qgar::AbstractFile::openWONLY(), and qgar::GenImage< T, CheckPolicy >::save().

const char *const qgar::AbstractFile::fileName  )  const [inline, inherited]
 

Get file name.

Definition at line 395 of file AbstractFile.H.

References qgar::AbstractFile::_fileName.

QGEfileStatus qgar::AbstractFile::fileStatus  )  const [inline, inherited]
 

Get current file status.

Definition at line 404 of file AbstractFile.H.

References qgar::AbstractFile::_fileStatus.

std::fstream & qgar::AbstractFile::fileStream  )  [inline, inherited]
 

Get file stream.

When saving the stream, usual I/O operations apply to the associated file, depending on the opening mode.

Definition at line 386 of file AbstractFile.H.

References qgar::AbstractFile::_fileStream.

void qgar::AbstractFile::isOpenA  )  throw (QgarErrorUser) [virtual, inherited]
 

Abort if the file is not open in a mode allowing appending.

Exceptions:
qgar::QgarErrorUser (file not open in append mode)

Definition at line 310 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::QGE_FILE_STATUS_APPEND, and qgar::QGE_FILE_STATUS_READ_APPEND.

void qgar::AbstractFile::isOpenR  )  throw (QgarErrorUser) [virtual, inherited]
 

Abort if the file is not open in a mode allowing reading.

Exceptions:
qgar::QgarErrorUser (file not open in read mode)

Definition at line 273 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::QGE_FILE_STATUS_APPEND, and qgar::QGE_FILE_STATUS_WRITE_ONLY.

Referenced by qgar::PgmFile::readRow(), and qgar::PbmFile::readRow().

void qgar::AbstractFile::isOpenRA  )  throw (QgarErrorUser) [virtual, inherited]
 

Abort if the file is not open in readi-append mode.

Exceptions:
qgar::QgarErrorUser (file not open in read/append mode)

Definition at line 347 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, and qgar::QGE_FILE_STATUS_READ_APPEND.

void qgar::AbstractFile::isOpenRW  )  throw (QgarErrorUser) [virtual, inherited]
 

Abort if the file is not open in read-write mode.

Exceptions:
qgar::QgarErrorUser (file not open in read/write mode)

Definition at line 329 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, and qgar::QGE_FILE_STATUS_READ_WRITE.

void qgar::AbstractFile::isOpenW  )  throw (QgarErrorUser) [virtual, inherited]
 

Abort if the file is not open in a mode allowing writing.

Exceptions:
qgar::QgarErrorUser (file not open in write mode)

Definition at line 292 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, and qgar::QGE_FILE_STATUS_READ_ONLY.

Referenced by qgar::TgifFile::write(), qgar::DxfFile::write(), qgar::PgmFile::writeRow(), and qgar::PbmFile::writeRow().

void qgar::AbstractFile::openAPPEND  )  throw (QgarErrorIO) [virtual, inherited]
 

Open in append mode.

The eventual content of the file is preserved and the file pointer is set to the end of the file.

Warning:
The file header is read using function qgar::AbstractFile::readHeader.
Exceptions:
qgar::QgarErrorIO (file cannot be opened)

Definition at line 166 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_APPEND, and qgar::AbstractFile::readHeader().

void qgar::AbstractFile::openRA  )  throw (QgarErrorIO) [virtual, inherited]
 

Open in read-append mode.

The file pointer is set to the end of the file.

Warning:
The file header is read using function qgar::AbstractFile::readHeader.
Exceptions:
qgar::QgarErrorIO (file cannot be opened)

Definition at line 223 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_READ_APPEND, and qgar::AbstractFile::readHeader().

void qgar::AbstractFile::openRONLY  )  throw (QgarErrorIO) [virtual, inherited]
 

Open in read-only mode.

The file pointer is set to the first character after the header.

Warning:
The file header is read using function qgar::AbstractFile::readHeader.
Exceptions:
qgar::QgarErrorIO (file cannot be opened)

Definition at line 107 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_READ_ONLY, and qgar::AbstractFile::readHeader().

Referenced by qgar::GenImage< T, CheckPolicy >::GenImage().

void qgar::AbstractFile::openRW  )  throw (QgarErrorIO) [virtual, inherited]
 

Open in read-write mode.

Warning:
The file is new and a header is written into the file using function qgar::AbstractFile::writeHeader. If a file with given name already exists, its content is lost.
Exceptions:
qgar::QgarErrorIO (file cannot be opened)

Definition at line 197 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_READ_WRITE, and qgar::AbstractFile::writeHeader().

void qgar::AbstractFile::openWONLY  )  throw (QgarErrorIO) [virtual, inherited]
 

Open in write-only mode.

Warning:
The file is new and a header is written into the file using function qgar::AbstractFile::writeHeader. If a file with given name already exists, its content is lost.
Exceptions:
qgar::QgarErrorIO (file cannot be opened)

Definition at line 136 of file AbstractFile.C.

References qgar::AbstractFile::_fileName, qgar::AbstractFile::_fileStatus, qgar::AbstractFile::_fileStream, qgar::AbstractFile::close(), qgar::QGE_FILE_STATUS_WRITE_ONLY, and qgar::AbstractFile::writeHeader().

Referenced by qgar::MapleFile::MapleFile(), and qgar::GenImage< T, CheckPolicy >::save().

void qgar::File::readHeader  )  [protected, virtual]
 

Default to read file header: No effect.

Implements qgar::AbstractFile.

Definition at line 88 of file File.C.

void qgar::File::writeFooter  )  [protected, virtual]
 

Default to write footer into the file: No effect.

Implements qgar::AbstractFile.

Definition at line 106 of file File.C.

void qgar::File::writeHeader  )  [protected, virtual]
 

Default to write header into the file: No effect.

Implements qgar::AbstractFile.

Definition at line 97 of file File.C.


Member Data Documentation

char* qgar::AbstractFile::_fileName [protected, inherited]
 

File name.

Definition at line 349 of file AbstractFile.H.

Referenced by qgar::AbstractFile::fileName(), qgar::PbmFile::getBit(), qgar::AbstractPbmPlusFile::getChar(), qgar::AbstractPbmPlusFile::getInt(), qgar::AbstractPbmPlusFile::getRawByte(), qgar::AbstractFile::isOpenA(), qgar::AbstractFile::isOpenR(), qgar::AbstractFile::isOpenRA(), qgar::AbstractFile::isOpenRW(), qgar::AbstractFile::isOpenW(), qgar::AbstractFile::openAPPEND(), qgar::AbstractFile::openRA(), qgar::AbstractFile::openRONLY(), qgar::AbstractFile::openRW(), qgar::AbstractFile::openWONLY(), qgar::PgmFile::readHeader(), qgar::PbmFile::readHeader(), qgar::DxfFile::readHeader(), qgar::DxfFile::retrieveChainOrQgarPolyline(), and qgar::AbstractFile::~AbstractFile().

QGEfileStatus qgar::AbstractFile::_fileStatus [protected, inherited]
 

File status.

Definition at line 354 of file AbstractFile.H.

Referenced by qgar::AbstractFile::close(), qgar::AbstractFile::fileStatus(), qgar::AbstractFile::isOpenA(), qgar::AbstractFile::isOpenR(), qgar::AbstractFile::isOpenRA(), qgar::AbstractFile::isOpenRW(), qgar::AbstractFile::isOpenW(), qgar::AbstractFile::openAPPEND(), qgar::AbstractFile::openRA(), qgar::AbstractFile::openRONLY(), qgar::AbstractFile::openRW(), and qgar::AbstractFile::openWONLY().

std::fstream qgar::AbstractFile::_fileStream [protected, inherited]
 

Associated file stream.

Definition at line 359 of file AbstractFile.H.

Referenced by qgar::TgifFile::beginSavePoly(), qgar::AbstractFile::close(), qgar::TgifFile::endSavePoly(), qgar::AbstractFile::fileStream(), qgar::AbstractPbmPlusFile::getChar(), qgar::AbstractPbmPlusFile::getRawByte(), qgar::MapleFile::MapleFile(), qgar::AbstractFile::openAPPEND(), qgar::AbstractFile::openRA(), qgar::AbstractFile::openRONLY(), qgar::AbstractFile::openRW(), qgar::AbstractFile::openWONLY(), qgar::PgmFile::readHeader(), qgar::PbmFile::readHeader(), qgar::DxfFile::retrieveDxfGroup(), qgar::TgifFile::saveArc(), qgar::TgifFile::saveBox(), qgar::TgifFile::saveChain(), qgar::TgifFile::saveCircle(), qgar::DxfFile::saveDxfGroup(), qgar::TgifFile::savePoint(), qgar::TgifFile::savePolyline(), qgar::TgifFile::saveSegment(), qgar::TgifFile::writeHeader(), qgar::PgmFile::writeHeader(), qgar::PbmFile::writeHeader(), qgar::MapleFile::writeHeader(), qgar::DxfFile::writeHeader(), qgar::PgmFile::writeRow(), and qgar::PbmFile::writeRow().


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