Geogram  Version 1.9.1-rc
A programming library of geometric algorithms
GEO::OutputGeoFile Class Reference

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

#include <geogram/basic/geofile.h>

Inheritance diagram for GEO::OutputGeoFile:
GEO::GeoFile

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

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, AttributeSetInfoattribute_sets_
 
- 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 write a structured binary file.

Definition at line 771 of file geofile.h.

Constructor & Destructor Documentation

◆ OutputGeoFile()

GEO::OutputGeoFile::OutputGeoFile ( const std::string &  filename,
index_t  compression_level = 3 
)

OutputGeoFile constructor.

Parameters
[in]filenamea const reference to the file name.
[in]compression_leveloptional compression level, use 0 for uncompressed and 6 for maximum compression.

Member Function Documentation

◆ write_attribute()

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.

Parameters
[in]attribute_set_namea const reference to the name of an attribute set
[in]attribute_namea const reference to the name of the attribute
[in]element_typea const reference to the C++ name of the element type
[in]element_sizesize in bytes of an element
[in]dimensionnumber of elements per item
[in]dataa const pointer to the data of the attribute, as a contiguous array of bytes in memory.

◆ write_attribute_set()

void GEO::OutputGeoFile::write_attribute_set ( const std::string &  name,
index_t  nb_items 
)

Writes a new attribute set to the file.

Parameters
[in]namea const reference to the name of the attribute set
[in]nb_itemsnumber of items in the attribute set

◆ write_command_line()

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.

Parameters
[in]argsthe command line, as a vector of strings

◆ write_comment()

void GEO::OutputGeoFile::write_comment ( const std::string &  comment)

Writes a new comment to the file.

Parameters
[in]commenta const reference to the comment.

◆ write_separator()

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.


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