Geogram
Version 1.9.1
A programming library of geometric algorithms
|
Used to write a structured binary file. More...
#include <geogram/basic/geofile.h>
Public Member Functions | |
OutputGeoFile (const std::string &filename, index_t compression_level=3) | |
OutputGeoFile constructor. More... | |
void | write_attribute_set (const std::string &name, index_t nb_items) |
Writes a new attribute set to the file. More... | |
void | write_attribute (const std::string &attribute_set_name, const std::string &attribute_name, const std::string &element_type, size_t element_size, index_t dimension, const void *data) |
Writes a new attribute to the file. More... | |
void | write_comment (const std::string &comment) |
Writes a new comment to the file. More... | |
void | write_command_line (const std::vector< std::string > &args) |
Writes the command line to the file. More... | |
void | write_separator () |
Writes a separator into 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... | |
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... | |
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_ |
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::OutputGeoFile::OutputGeoFile | ( | const std::string & | filename, |
index_t | compression_level = 3 |
||
) |
OutputGeoFile constructor.
[in] | filename | a const reference to the file name. |
[in] | compression_level | optional compression level, use 0 for uncompressed and 6 for maximum compression. |
void GEO::OutputGeoFile::write_attribute | ( | const std::string & | attribute_set_name, |
const std::string & | attribute_name, | ||
const std::string & | element_type, | ||
size_t | element_size, | ||
index_t | dimension, | ||
const void * | data | ||
) |
Writes a new attribute to the file.
[in] | attribute_set_name | a const reference to the name of an attribute set |
[in] | attribute_name | a const reference to the name of the attribute |
[in] | element_type | a const reference to the C++ name of the element type |
[in] | element_size | size in bytes of an element |
[in] | dimension | number of elements per item |
[in] | data | a const pointer to the data of the attribute, as a contiguous array of bytes in memory. |
void GEO::OutputGeoFile::write_attribute_set | ( | const std::string & | name, |
index_t | nb_items | ||
) |
Writes a new attribute set to the file.
[in] | name | a const reference to the name of the attribute set |
[in] | nb_items | number of items in the attribute set |
void GEO::OutputGeoFile::write_command_line | ( | const std::vector< std::string > & | args | ) |
Writes the command line to 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.
[in] | args | the command line, as a vector of strings |
void GEO::OutputGeoFile::write_comment | ( | const std::string & | comment | ) |
Writes a new comment to the file.
[in] | comment | a const reference to the comment. |
void GEO::OutputGeoFile::write_separator | ( | ) |
Writes a separator into the file.
Separators are used to mark the boundaries between multiple objects saved in the same GeoFile.