itpp::bifstream Class Reference
Base Module » IT++ File Format

Binary Infile Class. More...

`#include <itpp/base/binfile.h>`

Inheritance diagram for itpp::bifstream:

## Public Types

enum | endian { l_endian , b_endian }
| Definition of the endian data type. More...

## Public Member Functions

| bifstream (const std::string &name, endian e=b_endian)
| Class constructor that opens a file and sets the endianity.
| bifstream ()
| Class Constructor.
| ~bifstream ()
| Class Destructor.
void | open (const std::string &name, endian e=b_endian)
| Open a file for reading and set the endianity.
int | length ()
| Returns the length in bytes of the file.
bifstream & | operator>> (char &a)
| Reads a signed char variable from the binary input file.
bifstream & | operator>> (int8_t &a)
| Reads a 8-bit signed integer variable from the binary input file.
bifstream & | operator>> (uint8_t &a)
| Reads a 8-bit unsigned integer variable from the binary input file.
bifstream & | operator>> (int16_t &a)
| Reads a 16-bit signed integer variable from the binary input file.
bifstream & | operator>> (uint16_t &a)
| Reads a 16-bit unsigned integer variable from the binary input file.
bifstream & | operator>> (int32_t &a)
| Reads a 32-bit signed integer variable from the binary input file.
bifstream & | operator>> (uint32_t &a)
| Reads a 32-bit unsigned integer variable from the binary input file.
bifstream & | operator>> (int64_t &a)
| Reads a 64-bit signed integer variable from the binary input file.
bifstream & | operator>> (uint64_t &a)
| Reads a 64-bit unsigned ingeger variable from the binary input file.
bifstream & | operator>> (float &a)
| Reads a float variable from the binary input file.
bifstream & | operator>> (double &a)
| Reads a double variable from the binary input file.
bifstream & | operator>> (bin &a)
| Reads a binary variable from the binary input file.
bifstream & | operator>> (char *a)
| Reads a char* string from the binary input file.
bifstream & | operator>> (std::string &a)
| Reads a string variable from the binary input file.
endian | get_endianity () const
| Returns the endianity of the class.
endian | get_native_endianity () const
| Returns the native endianity for this computer architecture.
void | set_endianity (endian e)
| Set the endianity for this class.
void | set_native_endianity ()
| Set the endianity of this class to the native endianity for this computer architecture.
bool | is_open ()
| Open state.
void | open (const char *filename, std::ios_base::openmode mode=std::ios_base::in|std::ios_base::binary)
| Method to open corresponding file.
void | close ()
| Method to close corresponding file.
std::streamsize | gcount () const
| Last extracted chars count.
int | get ()
| Get single char.
Ifstream_Binfile_Facade & | get (char &c)
| Get single char.
Ifstream_Binfile_Facade & | get (char *s, std::streamsize n)
| Get multiple chars to c-string and add trailing 0.
Ifstream_Binfile_Facade & | get (char *s, std::streamsize n, char delim)
| Get multiple chars to c-string without trailing 0.
Ifstream_Binfile_Facade & | getline (char *s, std::streamsize n)
| Get multiple chars to c-string without trailing 0.
Ifstream_Binfile_Facade & | getline (char *s, std::streamsize n, char delim)
Ifstream_Binfile_Facade & | ignore (std::streamsize n=1, int delim=EOF)
| Extract and ignore chars.
int | peek ()
| Peak single char from the top of the buffer.
Ifstream_Binfile_Facade & | read (char *s, std::streamsize n)
| Read n chars from stream.
std::streamsize | readsome (char *s, std::streamsize n)
| Read up to n available chars from stream.
Ifstream_Binfile_Facade & | putback (char c)
| This method attempts to put back single char.
Ifstream_Binfile_Facade & | unget ()
| Unget last extracted char.
std::streampos | tellg ()
| Get position.
Ifstream_Binfile_Facade & | seekg (std::streampos pos)
| Set position.
Ifstream_Binfile_Facade & | seekg (std::streamoff pos, std::ios_base::seekdir way)
| Set relative position.
bool | good () const
| This method returns true is stream state is good.
bool | eof () const
| This method returns true if eof is reached.
bool | fail () const
| This method returns true if either failbit or badbit is set.
bool | bad () const
| This method returns true if badbit is set.
bool | operator! () const
| Unary not operator to check the stream state.
| operator bool () const
| Conversion to bool to validate stream state.
std::ios_base::iostate | rdstate () const
| Method to read stream state flags.
void | setstate (std::ios_base::iostate state)
| Method to set the stream state (combines already set flags with flags provide by user)
void | clear (std::ios_base::iostate state=std::ios_base::goodbit)
| Method to set stream state (overwrites stream state flags)
std::ios_base::iostate | exceptions () const
| Method to get the exceptions mask.
void | exceptions (std::ios_base::iostate except)
| Method to set the exceptions mask.

## Protected Member Functions

std::ifstream * | stream ()
| Access to internal stream for derived classes.

## Protected Attributes

bool | switch_endianity
| Indicates if the endianity of the processed data needs to be changed.
endian | native_endianity
| The native endianity for this computer architecture.

## Detailed Description

Binary Infile Class.

Definition at line 538 of file binfile.h.

## Member Enumeration Documentation

## endian

enum itpp::bfstream_base::endian

inherited

Definition of the endian data type.

The Endianness defines the order in which multibyte numbers are stored in the file. The two orders are called "Little Endian" (`l_endian` ) and "Big Endian" (`b_endian` ).

"Little Endian" means that the low-order byte of the number is stored at the lowest address (i.e. the little end comes first). "Big Endian" means that the high-order byte of the number is stored in memory at the lowest address (i.e. the big end comes first)

Definition at line 74 of file binfile.h.

## Constructor & Destructor Documentation

## bifstream() [1/2]

itpp::bifstream::bifstream | ( | const std::string & | name,
|  | endian | e = `b_endian`
| ) |  |

Class constructor that opens a file and sets the endianity.

Parameters

  name | The name of the file to open
  e | Defines the endianity of the class. Possible values are `l_endian` for "Little Endian" or `b_endian` for "Big Endian". The default value is `b_endian`.

Definition at line 231 of file binfile.cpp.

## bifstream() [2/2]

itpp::bifstream::bifstream | ( |  | ) |

Class Constructor.

Definition at line 234 of file binfile.cpp.

## ~bifstream()

itpp::bifstream::~bifstream | ( |  | ) |

inline

Class Destructor.

Definition at line 555 of file binfile.h.

## Member Function Documentation

## open() [1/2]

void itpp::bifstream::open | ( | const std::string & | name,
|  | endian | e = `b_endian`
| ) |  |

Open a file for reading and set the endianity.

Parameters

  name | The name of the file to open
  e | Defines the endianity of the class (default value is `b_endian` )

Definition at line 236 of file binfile.cpp.

References itpp::bfstream_base::native_endianity, itpp::binfile_details::Ifstream_Binfile_Facade::open(), and itpp::bfstream_base::switch_endianity.

## length()

int itpp::bifstream::length | ( |  | ) |

Returns the length in bytes of the file.

Definition at line 245 of file binfile.cpp.

References itpp::binfile_details::Ifstream_Binfile_Facade::seekg(), and itpp::binfile_details::Ifstream_Binfile_Facade::tellg().

## operator>>() [1/14]

bifstream & itpp::bifstream::operator>> | ( | char & | a | ) |

Reads a signed char variable from the binary input file.

Definition at line 255 of file binfile.cpp.

References itpp::binfile_details::Ifstream_Binfile_Facade::get().

## operator>>() [2/14]

bifstream & itpp::bifstream::operator>> | ( | int8_t & | a | ) |

Reads a 8-bit signed integer variable from the binary input file.

Definition at line 261 of file binfile.cpp.

References itpp::binfile_details::Ifstream_Binfile_Facade::get(), and it_assert.

## operator>>() [3/14]

bifstream & itpp::bifstream::operator>> | ( | uint8_t & | a | ) |

Reads a 8-bit unsigned integer variable from the binary input file.

Definition at line 270 of file binfile.cpp.

References itpp::binfile_details::Ifstream_Binfile_Facade::get(), and it_assert.

## operator>>() [4/14]

bifstream & itpp::bifstream::operator>> | ( | int16_t & | a | ) |

Reads a 16-bit signed integer variable from the binary input file.

Definition at line 279 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [5/14]

bifstream & itpp::bifstream::operator>> | ( | uint16_t & | a | ) |

Reads a 16-bit unsigned integer variable from the binary input file.

Definition at line 285 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [6/14]

bifstream & itpp::bifstream::operator>> | ( | int32_t & | a | ) |

Reads a 32-bit signed integer variable from the binary input file.

Definition at line 291 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [7/14]

bifstream & itpp::bifstream::operator>> | ( | uint32_t & | a | ) |

Reads a 32-bit unsigned integer variable from the binary input file.

Definition at line 297 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [8/14]

bifstream & itpp::bifstream::operator>> | ( | int64_t & | a | ) |

Reads a 64-bit signed integer variable from the binary input file.

Definition at line 303 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [9/14]

bifstream & itpp::bifstream::operator>> | ( | uint64_t & | a | ) |

Reads a 64-bit unsigned ingeger variable from the binary input file.

Definition at line 309 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [10/14]

bifstream & itpp::bifstream::operator>> | ( | float & | a | ) |

Reads a float variable from the binary input file.

Definition at line 315 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [11/14]

bifstream & itpp::bifstream::operator>> | ( | double & | a | ) |

Reads a double variable from the binary input file.

Definition at line 321 of file binfile.cpp.

References itpp::bfstream_base::switch_endianity.

## operator>>() [12/14]

bifstream & itpp::bifstream::operator>> | ( | bin & | a | ) |

Reads a binary variable from the binary input file.

Definition at line 327 of file binfile.cpp.

References it_assert, and itpp::bfstream_base::switch_endianity.

## operator>>() [13/14]

bifstream & itpp::bifstream::operator>> | ( | char * | a | ) |

Reads a char* string from the binary input file.

Definition at line 337 of file binfile.cpp.

References itpp::binfile_details::Ifstream_Binfile_Facade::getline().

## operator>>() [14/14]

bifstream & itpp::bifstream::operator>> | ( | std::string & | a | ) |

Reads a string variable from the binary input file.

Definition at line 343 of file binfile.cpp.

References itpp::binfile_details::Ifstream_Binfile_Facade::stream().

## get_endianity()

endian itpp::bfstream_base::get_endianity | ( |  | ) | const

inline inherited

Returns the endianity of the class.

Definition at line 88 of file binfile.h.

## get_native_endianity()

endian itpp::bfstream_base::get_native_endianity | ( |  | ) | const

inline inherited

Returns the native endianity for this computer architecture.

Intel processors use "Little Endian" byte ordering while e.g. Motorola processors use "Big Endian" byte ordering.

Definition at line 105 of file binfile.h.

Referenced by itpp::it_file_old::write_data_header().

## set_endianity()

void itpp::bfstream_base::set_endianity | ( | endian | e | ) |

inline inherited

Set the endianity for this class.

Definition at line 110 of file binfile.h.

Referenced by itpp::it_ifile_old::read_data_header(), and itpp::it_file_old::write_data_header_here().

## set_native_endianity()

void itpp::bfstream_base::set_native_endianity | ( |  | ) |

inline inherited

Set the endianity of this class to the native endianity for this computer architecture.

Definition at line 121 of file binfile.h.

## is_open()

bool itpp::binfile_details::Ifstream_Binfile_Facade::is_open | ( |  | ) |

inline inherited

Open state.

Definition at line 253 of file binfile.h.

## open() [2/2]

void itpp::binfile_details::Ifstream_Binfile_Facade::open | ( | const char * | filename,
|  | std::ios_base::openmode | mode = `std::ios_base::in | std::ios_base::binary`
| ) |  |

inline inherited

Method to open corresponding file.

Definition at line 256 of file binfile.h.

Referenced by open().

## close()

void itpp::binfile_details::Ifstream_Binfile_Facade::close | ( |  | ) |

inline inherited

Method to close corresponding file.

Definition at line 260 of file binfile.h.

## gcount()

std::streamsize itpp::binfile_details::Ifstream_Binfile_Facade::gcount | ( |  | ) | const

inline inherited

Last extracted chars count.

Definition at line 262 of file binfile.h.

## get() [1/4]

int itpp::binfile_details::Ifstream_Binfile_Facade::get | ( |  | ) |

inline inherited

Get single char.

Definition at line 264 of file binfile.h.

Referenced by itpp::binfile_details::Ifstream_Binfile_Facade::get(), itpp::binfile_details::Ifstream_Binfile_Facade::get(), itpp::binfile_details::Ifstream_Binfile_Facade::get(), operator>>(), operator>>(), and operator>>().

## get() [2/4]

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::get | ( | char & | c | ) |

inline inherited

Get single char.

Definition at line 266 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::get().

## get() [3/4]

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::get | ( | char * | s,
|  | std::streamsize | n
| ) |  |

inline inherited

Get multiple chars to c-string and add trailing 0.

Definition at line 268 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::get().

## get() [4/4]

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::get | ( | char * | s,
|  | std::streamsize | n,
|  | char | delim
| ) |  |

inline inherited

Get multiple chars to c-string without trailing 0.

Definition at line 271 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::get().

## getline() [1/2]

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::getline | ( | char * | s,
|  | std::streamsize | n
| ) |  |

inline inherited

Get multiple chars to c-string without trailing 0.

Definition at line 274 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::getline().

Referenced by itpp::binfile_details::Ifstream_Binfile_Facade::getline(), and operator>>().

## getline() [2/2]

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::getline | ( | char * | s,
|  | std::streamsize | n,
|  | char | delim
| ) |  |

inline inherited

Definition at line 276 of file binfile.h.

## ignore()

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::ignore | ( | std::streamsize | n = `1`,
|  | int | delim = `EOF`
| ) |  |

inline inherited

Extract and ignore chars.

Definition at line 279 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::ignore().

Referenced by itpp::binfile_details::Ifstream_Binfile_Facade::ignore().

## peek()

int itpp::binfile_details::Ifstream_Binfile_Facade::peek | ( |  | ) |

inline inherited

Peak single char from the top of the buffer.

Definition at line 282 of file binfile.h.

## read()

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::read | ( | char * | s,
|  | std::streamsize | n
| ) |  |

inline inherited

Read n chars from stream.

Definition at line 284 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::read().

Referenced by itpp::binfile_details::Ifstream_Binfile_Facade::read().

## readsome()

std::streamsize itpp::binfile_details::Ifstream_Binfile_Facade::readsome | ( | char * | s,
|  | std::streamsize | n
| ) |  |

inline inherited

Read up to n available chars from stream.

Definition at line 287 of file binfile.h.

## putback()

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::putback | ( | char | c | ) |

inline inherited

This method attempts to put back single char.

Definition at line 290 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::putback().

Referenced by itpp::binfile_details::Ifstream_Binfile_Facade::putback().

## unget()

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::unget | ( |  | ) |

inline inherited

Unget last extracted char.

Definition at line 293 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::unget().

Referenced by itpp::binfile_details::Ifstream_Binfile_Facade::unget().

## tellg()

std::streampos itpp::binfile_details::Ifstream_Binfile_Facade::tellg | ( |  | ) |

inline inherited

Get position.

Definition at line 295 of file binfile.h.

Referenced by length().

## seekg() [1/2]

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::seekg | ( | std::streampos | pos | ) |

inline inherited

Set position.

Definition at line 297 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::seekg().

Referenced by length(), itpp::binfile_details::Ifstream_Binfile_Facade::seekg(), and itpp::binfile_details::Ifstream_Binfile_Facade::seekg().

## seekg() [2/2]

Ifstream_Binfile_Facade & itpp::binfile_details::Ifstream_Binfile_Facade::seekg | ( | std::streamoff | pos,
|  | std::ios_base::seekdir | way
| ) |  |

inline inherited

Set relative position.

Definition at line 300 of file binfile.h.

References itpp::binfile_details::Ifstream_Binfile_Facade::seekg().

## good()

bool itpp::binfile_details::Ifstream_Binfile_Facade::good | ( |  | ) | const

inline inherited

This method returns true is stream state is good.

Definition at line 304 of file binfile.h.

## eof()

bool itpp::binfile_details::Ifstream_Binfile_Facade::eof | ( |  | ) | const

inline inherited

This method returns true if eof is reached.

Definition at line 306 of file binfile.h.

## fail()

bool itpp::binfile_details::Ifstream_Binfile_Facade::fail | ( |  | ) | const

inline inherited

This method returns true if either failbit or badbit is set.

Definition at line 308 of file binfile.h.

## bad()

bool itpp::binfile_details::Ifstream_Binfile_Facade::bad | ( |  | ) | const

inline inherited

This method returns true if badbit is set.

Definition at line 310 of file binfile.h.

## operator!()

bool itpp::binfile_details::Ifstream_Binfile_Facade::operator! | ( |  | ) | const

inline inherited

Unary not operator to check the stream state.

Definition at line 313 of file binfile.h.

## operator bool()

itpp::binfile_details::Ifstream_Binfile_Facade::operator bool | ( |  | ) | const

inline inherited

Conversion to bool to validate stream state.

Definition at line 315 of file binfile.h.

## rdstate()

std::ios_base::iostate itpp::binfile_details::Ifstream_Binfile_Facade::rdstate | ( |  | ) | const

inline inherited

Method to read stream state flags.

Definition at line 318 of file binfile.h.

## setstate()

void itpp::binfile_details::Ifstream_Binfile_Facade::setstate | ( | std::ios_base::iostate | state | ) |

inline inherited

Method to set the stream state (combines already set flags with flags provide by user)

Definition at line 320 of file binfile.h.

## clear()

void itpp::binfile_details::Ifstream_Binfile_Facade::clear | ( | std::ios_base::iostate | state = `std::ios_base::goodbit` | ) |

inline inherited

Method to set stream state (overwrites stream state flags)

Definition at line 322 of file binfile.h.

## exceptions() [1/2]

std::ios_base::iostate itpp::binfile_details::Ifstream_Binfile_Facade::exceptions | ( |  | ) | const

inline inherited

Method to get the exceptions mask.

Definition at line 324 of file binfile.h.

## exceptions() [2/2]

void itpp::binfile_details::Ifstream_Binfile_Facade::exceptions | ( | std::ios_base::iostate | except | ) |

inline inherited

Method to set the exceptions mask.

Definition at line 326 of file binfile.h.

## stream()

std::ifstream * itpp::binfile_details::Ifstream_Binfile_Facade::stream | ( |  | ) |

inline protected inherited

Access to internal stream for derived classes.

Definition at line 332 of file binfile.h.

Referenced by operator>>().

## Member Data Documentation

## switch_endianity

bool itpp::bfstream_base::switch_endianity

protected inherited

Indicates if the endianity of the processed data needs to be changed.

Definition at line 125 of file binfile.h.

Referenced by itpp::bfstream_base::bfstream_base(), itpp::bofstream::open(), itpp::bfstream::open(), open(), itpp::bfstream::open_readonly(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), itpp::bofstream::operator<<(), itpp::bfstream::operator<<(), operator>>(), itpp::bfstream::operator>>(), operator>>(), itpp::bfstream::operator>>(), operator>>(), itpp::bfstream::operator>>(), operator>>(), itpp::bfstream::operator>>(), operator>>(), itpp::bfstream::operator>>(), operator>>(), itpp::bfstream::operator>>(), operator>>(), itpp::bfstream::operator>>(), operator>>(), itpp::bfstream::operator>>(), operator>>(), and itpp::bfstream::operator>>().

## native_endianity

endian itpp::bfstream_base::native_endianity

protected inherited

The native endianity for this computer architecture.

Definition at line 127 of file binfile.h.

Referenced by itpp::bfstream_base::bfstream_base(), itpp::bofstream::open(), itpp::bfstream::open(), open(), and itpp::bfstream::open_readonly().

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

- itpp/base/binfile.h
- itpp/base/binfile.cpp

Generated on Mon Apr 22 2024 09:45:27 for IT++ by Doxygen 1.9.8