Abstract base class for file input classes. More...
#include <CoinFileIO.hpp>
Public Member Functions | |
CoinFileInput (const std::string &fileName) | |
Constructor (don't use this, use the create method instead). | |
virtual | ~CoinFileInput () |
Destructor. | |
virtual int | read (void *buffer, int size)=0 |
Read a block of data from the file, similar to fread. | |
virtual char * | gets (char *buffer, int size)=0 |
Reads up to (size-1) characters an stores them into the buffer, similar to fgets. | |
Static Public Member Functions | |
static CoinFileInput * | create (const std::string &fileName) |
Factory method, that creates a CoinFileInput (more precisely a subclass of it) for the file specified. | |
Related Functions | |
(Note that these are not member functions.) | |
bool | fileAbsPath (const std::string &path) |
Test if the given string looks like an absolute file path. | |
bool | fileCoinReadable (std::string &name, const std::string &dfltPrefix=std::string("")) |
Test if the file is readable, using likely versions of the file name, and return the name that worked. |
Abstract base class for file input classes.
Definition at line 34 of file CoinFileIO.hpp.
CoinFileInput::CoinFileInput | ( | const std::string & | fileName | ) |
Constructor (don't use this, use the create method instead).
fileName | The name of the file used by this object. |
virtual CoinFileInput::~CoinFileInput | ( | ) | [virtual] |
Destructor.
static CoinFileInput* CoinFileInput::create | ( | const std::string & | fileName | ) | [static] |
Factory method, that creates a CoinFileInput (more precisely a subclass of it) for the file specified.
This method reads the first few bytes of the file and determines if this is a compressed or a plain file and returns the correct subclass to handle it. If the file does not exist or uses a compression not compiled in an exception is thrown.
fileName | The file that should be read. |
virtual int CoinFileInput::read | ( | void * | buffer, | |
int | size | |||
) | [pure virtual] |
Read a block of data from the file, similar to fread.
buffer | Address of a buffer to store the data into. | |
size | Number of bytes to read (buffer should be large enough). |
virtual char* CoinFileInput::gets | ( | char * | buffer, | |
int | size | |||
) | [pure virtual] |
Reads up to (size-1) characters an stores them into the buffer, similar to fgets.
Reading ends, when EOF or a newline occurs or (size-1) characters have been read. The resulting string is terminated with ''. If reading ends due to an encoutered newline, the '
' is put into the buffer, before the '' is appended.
buffer | The buffer to put the string into. | |
size | The size of the buffer in characters. |
bool fileAbsPath | ( | const std::string & | path | ) | [related] |
Test if the given string looks like an absolute file path.
The criteria are:
bool fileCoinReadable | ( | std::string & | name, | |
const std::string & | dfltPrefix = std::string("") | |||
) | [related] |
Test if the file is readable, using likely versions of the file name, and return the name that worked.
The file name is constructed from name
using the following rules:
dfltPrefix
) is provided, it is prepended to the name. If the constructed file name cannot be opened, and CoinUtils was built with support for compressed files, fileCoinReadable will try any standard extensions for supported compressed files.
The value returned in name
is the file name that actually worked.