Geogram
Version 1.9.1
A programming library of geometric algorithms
|
Used to read a structured binary file. More...
#include <geogram/basic/geofile.h>
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 AttributeSetInfo & | current_attribute_set () const |
Gets the current attribute set. More... | |
const AttributeInfo & | current_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... | |
AttributeSetInfo * | find_attribute_set (const std::string &name) |
Finds an attribute set by name. More... | |
const AttributeSetInfo * | find_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 | |
AttributeSetInfo * | current_attribute_set_ |
AttributeInfo * | current_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, AttributeSetInfo > | attribute_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, AsciiAttributeSerializer > | ascii_attribute_read_ |
static std::map< std::string, AsciiAttributeSerializer > | ascii_attribute_write_ |
GEO::InputGeoFile::InputGeoFile | ( | const std::string & | filename | ) |
InputGeoFile constructor.
[in] | filename | a const reference to the file name. |
|
inline |
|
inline |
const std::string& GEO::InputGeoFile::next_chunk | ( | ) |
Advances to the next chunk.
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.
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.
[out] | args | the command line, as a vector of strings |
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.
|
protected |
Skips the latest chunk.
This function can only be called right after next_chunk().