SUMO - Simulation of Urban MObility
|
Encapsulates binary reading operations on a file. More...
#include <BinaryInputDevice.h>
Public Member Functions | |
BinaryInputDevice (const std::string &name, const bool isTyped=false, const bool doValidate=false) | |
Constructor. More... | |
bool | good () const |
Returns whether the file can be used (is good()) More... | |
int | peek () |
Returns the next character to be read by an actual parse. More... | |
void | putback (char c) |
Returns the next character to be read by an actual parse. More... | |
std::string | read (int numBytes) |
Returns the next character to be read by an actual parse. More... | |
~BinaryInputDevice () | |
Destructor. More... | |
Private Member Functions | |
int | checkType (BinaryFormatter::DataType t) |
Private Attributes | |
const bool | myAmTyped |
char | myBuffer [10000] |
The buffer used for string parsing. More... | |
const bool | myEnableValidation |
Information whether types shall be checked. More... | |
std::ifstream | myStream |
The encapsulated stream. More... | |
Friends | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, char &c) |
Reads a char from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, unsigned char &c) |
Reads an unsigned char from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, int &i) |
Reads an int from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, SUMOReal &f) |
Reads a SUMOReal from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, bool &b) |
Reads a bool from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, std::string &s) |
Reads a string from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, std::vector< std::string > &v) |
Reads a string vector from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, std::vector< int > &v) |
Reads a string vector from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, std::vector< std::vector< int > > &v) |
Reads a string vector from the file (input operator) More... | |
BinaryInputDevice & | operator>> (BinaryInputDevice &os, Position &p) |
Reads a Position from the file (input operator) More... | |
Encapsulates binary reading operations on a file.
This class opens a binary file stream for reading and offers read access functions on it.
Please note that the byte order is undefined. Also the length of each type is not defined on a global scale and may differ across compilers or platforms.
Recheck whether this class could be replaced by a "normal InputDevice"
Maybe some kind of a well-defined types should be used (so that they have a well-defined length)
Maybe the byte-order should be defined
Definition at line 65 of file BinaryInputDevice.h.
BinaryInputDevice::BinaryInputDevice | ( | const std::string & | name, |
const bool | isTyped = false , |
||
const bool | doValidate = false |
||
) |
Constructor.
[in] | name | The name of the file to open for reading |
Definition at line 51 of file BinaryInputDevice.cpp.
BinaryInputDevice::~BinaryInputDevice | ( | ) |
Destructor.
Definition at line 57 of file BinaryInputDevice.cpp.
|
private |
Definition at line 86 of file BinaryInputDevice.cpp.
References myAmTyped, myEnableValidation, and myStream.
Referenced by operator>>().
bool BinaryInputDevice::good | ( | ) | const |
Returns whether the file can be used (is good())
Definition at line 61 of file BinaryInputDevice.cpp.
References myStream.
int BinaryInputDevice::peek | ( | ) |
Returns the next character to be read by an actual parse.
Definition at line 67 of file BinaryInputDevice.cpp.
References myStream.
Referenced by SUMOSAXReader::parseNext(), and SUMOSAXAttributesImpl_Binary::SUMOSAXAttributesImpl_Binary().
void BinaryInputDevice::putback | ( | char | c | ) |
Returns the next character to be read by an actual parse.
Definition at line 80 of file BinaryInputDevice.cpp.
References myStream.
Referenced by SUMOSAXAttributesImpl_Binary::SUMOSAXAttributesImpl_Binary().
std::string BinaryInputDevice::read | ( | int | numBytes | ) |
Returns the next character to be read by an actual parse.
Definition at line 73 of file BinaryInputDevice.cpp.
|
friend |
Reads a char from the file (input operator)
[in,out] | os | The BinaryInputDevice to read the char from |
[in] | c | The char to store the read value into |
Definition at line 100 of file BinaryInputDevice.cpp.
|
friend |
Reads an unsigned char from the file (input operator)
[in,out] | os | The BinaryInputDevice to read the char from |
[in] | c | The char to store the read value into |
Definition at line 108 of file BinaryInputDevice.cpp.
|
friend |
Reads an int from the file (input operator)
[in,out] | os | The BinaryInputDevice to read the int from |
[in] | i | The int to store the read value into |
Definition at line 116 of file BinaryInputDevice.cpp.
|
friend |
Reads a SUMOReal from the file (input operator)
[in,out] | os | The BinaryInputDevice to read the SUMOReal from |
[in] | i | The SUMOReal to store the read value into |
Definition at line 124 of file BinaryInputDevice.cpp.
|
friend |
Reads a bool from the file (input operator)
[in,out] | os | The BinaryInputDevice to read the bool from |
[in] | i | The bool to store the read value into |
Definition at line 138 of file BinaryInputDevice.cpp.
|
friend |
Reads a string from the file (input operator)
Reads the length of the string as an int, first. Reads then the specified number of chars into "myBuffer". Please note that the buffer has a fixed size - longer strings will cause an error.
[in,out] | os | The BinaryInputDevice to read the string from |
[in] | s | The string to store the read value into |
Definition at line 147 of file BinaryInputDevice.cpp.
|
friend |
Reads a string vector from the file (input operator)
Reads the length of the vector as an int, first. Reads then the specified number of strings using the string input operator. Please note that the buffer has a fixed size - longer strings will cause an error.
[in,out] | os | The BinaryInputDevice to read the string from |
[in] | v | The string vector to store the read value into |
Definition at line 164 of file BinaryInputDevice.cpp.
|
friend |
Reads a string vector from the file (input operator)
Reads the length of the vector as an int, first. Reads then the specified number of strings using the string input operator. Please note that the buffer has a fixed size - longer strings will cause an error.
[in,out] | os | The BinaryInputDevice to read the string from |
[in] | v | The string vector to store the read value into |
Definition at line 179 of file BinaryInputDevice.cpp.
|
friend |
Reads a string vector from the file (input operator)
Reads the length of the vector as an int, first. Reads then the specified number of strings using the string input operator. Please note that the buffer has a fixed size - longer strings will cause an error.
[in,out] | os | The BinaryInputDevice to read the string from |
[in] | v | The string vector to store the read value into |
Definition at line 194 of file BinaryInputDevice.cpp.
|
friend |
Reads a Position from the file (input operator)
[in,out] | os | The BinaryInputDevice to read the Position from |
[in] | p | The Position to store the read value into |
Definition at line 209 of file BinaryInputDevice.cpp.
|
private |
Definition at line 226 of file BinaryInputDevice.h.
Referenced by checkType().
|
private |
The buffer used for string parsing.
Definition at line 232 of file BinaryInputDevice.h.
Referenced by operator>>(), and read().
|
private |
Information whether types shall be checked.
Definition at line 229 of file BinaryInputDevice.h.
Referenced by checkType().
|
private |
The encapsulated stream.
Definition at line 224 of file BinaryInputDevice.h.
Referenced by checkType(), good(), operator>>(), peek(), putback(), and read().