Geogram  Version 1.9.0
A programming library of geometric algorithms
GEO::InputGeoFile Class Reference

Used to read a structured binary file. More...

#include <geogram/basic/geofile.h>

Inheritance diagram for GEO::InputGeoFile:
GEO::GeoFile

Public Member Functions

 InputGeoFile (const std::string &filename)
 InputGeoFile constructor. More...
 
const std::string & next_chunk ()
 Advances to the next chunk. More...
 
void read_attribute (void *addr)
 Reads the latest attribute. More...
 
void skip_attribute_set ()
 Indicates that all the attributes attached to the latest attribute set should be skipped. More...
 
const AttributeSetInfocurrent_attribute_set () const
 Gets the current attribute set. More...
 
const AttributeInfocurrent_attribute () const
 Gets the current attribute. More...
 
const std::string & current_comment () const
 
void read_command_line (std::vector< std::string > &args)
 Reads the command line from the file. More...
 
- Public Member Functions inherited from GEO::GeoFile
 GeoFile (const std::string &filename)
 GeoFile constructor. More...
 
 ~GeoFile ()
 GeoFile destructor.
 
bool is_ascii () const
 Tests whether this GeoFile is ascii. More...
 
const std::string & current_chunk_class () const
 Gets the current chunk class. More...
 
long current_chunk_size () const
 Gets the size of the current chunk. More...
 
AttributeSetInfofind_attribute_set (const std::string &name)
 Finds an attribute set by name. More...
 
const AttributeSetInfofind_attribute_set (const std::string &name) const
 Finds an attribute set by name. More...
 
index_t read_int ()
 Reads an integer from the file. More...
 
void write_int (index_t x, const char *comment=nullptr)
 Writes an integer into the file. More...
 
std::string read_string ()
 Reads a string from the file. More...
 
void write_string (const std::string &s, const char *comment=nullptr)
 Writes a string into the file. More...
 
size_t read_size ()
 Reads an unsigned 64 bits integer from the file. More...
 
void write_size (size_t x)
 Writes an unsigned 64 bits integer into the file. More...
 
std::string read_chunk_class ()
 Reads a chunk class from the file. More...
 
void write_chunk_class (const std::string &chunk_class)
 Writes a chunk class into the file. More...
 
void write_string_array (const std::vector< std::string > &strings)
 Writes a string array into the file. More...
 
void read_string_array (std::vector< std::string > &strings)
 Reads a string array from the file. More...
 
size_t string_size (const std::string &s) const
 Gets the size in bytes used by a given string in the file. More...
 
size_t string_array_size (const std::vector< std::string > &strings) const
 Gets the size in bytes used by a given string array in the file. More...
 
void read_chunk_header ()
 Reads a chunk header from the file.
 
void write_chunk_header (const std::string &chunk_class, size_t size)
 Writes a chunk header into the file. More...
 
void check_chunk_size ()
 Checks that the actual chunk size corresponds to the specified chunk size.
 
void check_zlib_version ()
 Compares the zlib version declared in the header file with the zlib version obtained from the runtime, and outputs an error message if they differ.
 
void clear_attribute_maps ()
 Clears all memorized information about attributes and attribute sets. More...
 

Protected Member Functions

void skip_chunk ()
 Skips the latest chunk. More...
 

Protected Attributes

AttributeSetInfocurrent_attribute_set_
 
AttributeInfocurrent_attribute_
 
std::string current_comment_
 
- Protected Attributes inherited from GEO::GeoFile
std::string filename_
 
gzFile file_
 
bool ascii_
 
FILE * ascii_file_
 
std::string current_chunk_class_
 
long current_chunk_size_
 
long current_chunk_file_pos_
 
std::map< std::string, AttributeSetInfoattribute_sets_
 

Additional Inherited Members

- Public Types inherited from GEO::GeoFile
typedef bool(* AsciiAttributeSerializer) (FILE *file, Memory::pointer base_address, index_t nb_elements)
 The function pointer type for reading and writing attributes in ASCII files.
 
- Static Public Member Functions inherited from GEO::GeoFile
static void register_ascii_attribute_serializer (const std::string &type_name, AsciiAttributeSerializer read, AsciiAttributeSerializer write)
 Declares a new attribute type that can be read from and written to ascii files. More...
 
- Static Protected Attributes inherited from GEO::GeoFile
static std::map< std::string, AsciiAttributeSerializerascii_attribute_read_
 
static std::map< std::string, AsciiAttributeSerializerascii_attribute_write_
 

Detailed Description

Used to read a structured binary file.

Definition at line 667 of file geofile.h.

Constructor & Destructor Documentation

◆ InputGeoFile()

GEO::InputGeoFile::InputGeoFile ( const std::string &  filename)

InputGeoFile constructor.

Parameters
[in]filenamea const reference to the file name.

Member Function Documentation

◆ current_attribute()

const AttributeInfo& GEO::InputGeoFile::current_attribute ( ) const
inline

Gets the current attribute.

Returns
a const reference to the AttributeInfo that represents the current attribute
Precondition
current chunk class is "ATTR" (ATTRIBUTE)

Definition at line 716 of file geofile.h.

◆ current_attribute_set()

const AttributeSetInfo& GEO::InputGeoFile::current_attribute_set ( ) const
inline

Gets the current attribute set.

Returns
a const reference to the AttributeSetInfo that represents the current attribute set
Precondition
current chunk class is either "ATTR" (ATTRIBUTE) or ATTS (ATTRIBUTE_SET)

Definition at line 705 of file geofile.h.

◆ next_chunk()

const std::string& GEO::InputGeoFile::next_chunk ( )

Advances to the next chunk.

Returns
The read chunk class.

◆ read_attribute()

void GEO::InputGeoFile::read_attribute ( void *  addr)

Reads the latest attribute.

This function can be only called right after next_chunk(), if it returned ATTRIBUTE.

◆ read_command_line()

void GEO::InputGeoFile::read_command_line ( std::vector< std::string > &  args)

Reads the command line from the file.

It is useful to save the command line arguments in each file, so that one can retrieve the parameters of each experiments when doing algorithm test.

Parameters
[out]argsthe command line, as a vector of strings
Precondition
current_chunk_class() == "CMDL"

◆ skip_attribute_set()

void GEO::InputGeoFile::skip_attribute_set ( )

Indicates that all the attributes attached to the latest attribute set should be skipped.

This function can be only called right after next_chunk(), if it returned ATTRIBUTE_SET.

◆ skip_chunk()

void GEO::InputGeoFile::skip_chunk ( )
protected

Skips the latest chunk.

This function can only be called right after next_chunk().


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