IT++ Logo
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
itpp::bfstream Class Reference

Binary in/out-file Class. More...

#include <itpp/base/binfile.h>

Inheritance diagram for itpp::bfstream:
itpp::bfstream_base itpp::binfile_details::Fstream_Binfile_Facade

Public Types

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

Public Member Functions

 bfstream (const std::string &name, endian e=b_endian)
 Class constructor that opens a file and sets the endianity.
 
 bfstream ()
 Class Constructor.
 
 ~bfstream ()
 Class Destructor.
 
void open (const std::string &name, bool trunc=false, endian e=b_endian)
 Open a file for reading and writing and set the endianity.
 
void open_readonly (const std::string &name, endian e=b_endian)
 Open a file for reading only and set the endianity.
 
int length ()
 Returns the length in bytes of the file.
 
bfstreamoperator<< (char a)
 Writes an char variable to the binary file.
 
bfstreamoperator<< (int8_t a)
 Writes a 8-bit signed integer variable to the binary file.
 
bfstreamoperator<< (uint8_t a)
 Writes a 8-bit unsigned integer variable to the binary file.
 
bfstreamoperator<< (int16_t a)
 Writes a 16-bit signed integer variable to the binary file.
 
bfstreamoperator<< (uint16_t a)
 Writes a 16-bit unsigned integer variable to the binary file.
 
bfstreamoperator<< (int32_t a)
 Writes a 32-bit signed integer variable to the binary file.
 
bfstreamoperator<< (uint32_t a)
 Writes a 32-bit unsigned integer variable to the binary file.
 
bfstreamoperator<< (int64_t a)
 Writes a 64-bit signed integer variable to the binary file.
 
bfstreamoperator<< (uint64_t a)
 Writes a 64-bit unsigned ingeger variable to the binary file.
 
bfstreamoperator<< (float a)
 Writes a float variable to the binary file.
 
bfstreamoperator<< (double a)
 Writes a double variable to the binary file.
 
bfstreamoperator<< (bin a)
 Writes a binary variable to the binary file.
 
bfstreamoperator<< (const char *a)
 Writes a char* string to the binary file.
 
bfstreamoperator<< (const std::string &a)
 Writes a string variable to the binary file.
 
bfstreamoperator>> (char &a)
 Reads a char variable from the binary file.
 
bfstreamoperator>> (int8_t &a)
 Reads a 8-bit signed integer variable from the binary file.
 
bfstreamoperator>> (uint8_t &a)
 Reads a 8-bit unsigned integer variable from the binary file.
 
bfstreamoperator>> (int16_t &a)
 Reads a 16-bit signed integer variable from the binary file.
 
bfstreamoperator>> (uint16_t &a)
 Reads a 16-bit unsigned integer variable from the binary file.
 
bfstreamoperator>> (int32_t &a)
 Reads a 32-bit signed integer variable from the binary file.
 
bfstreamoperator>> (uint32_t &a)
 Reads a 32-bit unsigned integer variable from the binary file.
 
bfstreamoperator>> (int64_t &a)
 Reads a 64-bit signed integer variable from the binary file.
 
bfstreamoperator>> (uint64_t &a)
 Reads a 64-bit unsigned ingeger variable from the binary file.
 
bfstreamoperator>> (float &a)
 Reads a float variable from the binary file.
 
bfstreamoperator>> (double &a)
 Reads a double variable from the binary file.
 
bfstreamoperator>> (bin &a)
 Reads a binary variable from the binary file.
 
bfstreamoperator>> (char *a)
 Reads a char* string from the binary file.
 
bfstreamoperator>> (std::string &a)
 Reads a string variable from the binary 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::out|std::ios_base::binary)
 Method to open corresponding file.
 
void close ()
 Method to close corresponding file.
 
Fstream_Binfile_Facade & write (const char *c, std::streamsize n)
 Output multiple characters.
 
Fstream_Binfile_Facade & put (const char c)
 Output single char.
 
std::streampos tellp ()
 Get position.
 
Fstream_Binfile_Facade & seekp (std::streampos pos)
 Set position.
 
Fstream_Binfile_Facade & seekp (std::streamoff pos, std::ios_base::seekdir way)
 Set relative position.
 
Fstream_Binfile_Facade & flush ()
 Flushes stream buffer.
 
std::streamsize gcount () const
 Last extracted chars count.
 
int get ()
 Get single char.
 
Fstream_Binfile_Facade & get (char &c)
 Get single char.
 
Fstream_Binfile_Facade & get (char *s, std::streamsize n)
 Get multiple chars to c-string and add trailing 0.
 
Fstream_Binfile_Facade & get (char *s, std::streamsize n, char delim)
 Get multiple chars to c-string without trailing 0.
 
Fstream_Binfile_Facade & getline (char *s, std::streamsize n)
 Get multiple chars to c-string without trailing 0.
 
Fstream_Binfile_Facade & getline (char *s, std::streamsize n, char delim)
 
Fstream_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.
 
Fstream_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.
 
Fstream_Binfile_Facade & putback (char c)
 This method attempts to put back single char.
 
Fstream_Binfile_Facade & unget ()
 Unget last extracted char.
 
std::streampos tellg ()
 Get position.
 
Fstream_Binfile_Facade & seekg (std::streampos pos)
 Set position.
 
Fstream_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::fstream * 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 in/out-file Class.

Definition at line 603 of file binfile.h.

Member Enumeration Documentation

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

itpp::bfstream::bfstream ( const std::string &  name,
endian  e = b_endian 
)

Class constructor that opens a file and sets the endianity.

Parameters
nameThe name of the file to open
eDefines 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 353 of file binfile.cpp.

Member Function Documentation

void itpp::bfstream::open ( const std::string &  name,
bool  trunc = false,
endian  e = b_endian 
)

Open a file for reading and writing and set the endianity.

Parameters
nameThe name of the file to open
truncRewrite the file if it exists (default value is false)
eDefines the endianity of the class (default value is b_endian )

Definition at line 359 of file binfile.cpp.

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

Referenced by itpp::it_file::open(), itpp::it_file_old::open(), and itpp::it_file::pack().

void itpp::bfstream::open_readonly ( const std::string &  name,
endian  e = b_endian 
)

Open a file for reading only and set the endianity.

Parameters
nameThe name of the file to open
eDefines the endianity of the class (default value is b_endian )

Definition at line 373 of file binfile.cpp.

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

Referenced by itpp::it_ifile::open(), and itpp::it_ifile_old::open().

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

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().


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

Generated on Sat Jul 6 2013 10:54:30 for IT++ by Doxygen 1.8.2