libgta  1.2.1
Read and Write Generic Tagged Array (GTA) files
List of all members
gta::header Class Reference

The GTA header. More...

Public Member Functions

Constructor / Destructor & Co.
 header ()
 Constructor.
 
 header (const header &hdr)
 Copy constructor. More...
 
 ~header ()
 Destructor.
 
const headeroperator= (const header &hdr)
 Assignment operator. More...
 
Read and Write a Header
void read_from (custom_io &io)
 Read a header. More...
 
void read_from (std::istream &is)
 Read a header. More...
 
void read_from (FILE *f)
 Read a header. More...
 
void read_from (int fd)
 Read a header. More...
 
void write_to (custom_io &io) const
 Write a header. More...
 
void write_to (std::ostream &os) const
 Write a header. More...
 
void write_to (FILE *f) const
 Write a header. More...
 
void write_to (int fd) const
 Write a header. More...
 
Access Header Information
const taglistglobal_taglist () const
 Get the global tag list. More...
 
taglistglobal_taglist ()
 Get the global tag list. More...
 
uintmax_t element_size () const
 Get the element size. More...
 
uintmax_t components () const
 Get the number of components. More...
 
type component_type (uintmax_t i) const
 Get the component type. More...
 
uintmax_t component_size (uintmax_t i) const
 Get the component size. More...
 
const taglistcomponent_taglist (uintmax_t i) const
 Get the component tag list. More...
 
taglistcomponent_taglist (uintmax_t i)
 Get the component tag list. More...
 
uintmax_t dimensions () const
 Get the number of dimensions. More...
 
uintmax_t dimension_size (uintmax_t i) const
 Get the size in a dimension. More...
 
const taglistdimension_taglist (uintmax_t i) const
 Get the dimension tag list. More...
 
taglistdimension_taglist (uintmax_t i)
 Get the dimension tag list. More...
 
uintmax_t elements () const
 Get the total number of elements in the array. More...
 
uintmax_t data_size () const
 Get the total size of the array. More...
 
gta::compression compression () const
 Get the compression. More...
 
void set_compression (gta::compression compression)
 Set the compression. More...
 
Define an Array
void set_components (uintmax_t n, const type *types, const uintmax_t *sizes=NULL)
 Set the components of an array element. More...
 
void set_components (type type, uintmax_t size=0)
 Set the components of an array element (variant for elements with a single component). More...
 
void set_components (type type0, type type1, uintmax_t size0=0, uintmax_t size1=0)
 Set the components of an array element (variant for elements with two components). More...
 
void set_components (type type0, type type1, type type2, uintmax_t size0=0, uintmax_t size1=0, uintmax_t size2=0)
 Set the components of an array element (variant for elements with three components). More...
 
void set_components (type type0, type type1, type type2, type type3, uintmax_t size0=0, uintmax_t size1=0, uintmax_t size2=0, uintmax_t size3=0)
 Set the components of an array element (variant for elements with four components). More...
 
void set_dimensions (uintmax_t n, const uintmax_t *sizes)
 Set the dimensions. More...
 
void set_dimensions (uintmax_t size)
 Set the dimensions (variant for one-dimensional arrays). More...
 
void set_dimensions (uintmax_t size0, uintmax_t size1)
 Set the dimensions (variant for two-dimensional arrays). More...
 
void set_dimensions (uintmax_t size0, uintmax_t size1, uintmax_t size2)
 Set the dimensions (variant for three-dimensional arrays). More...
 
void set_dimensions (uintmax_t size0, uintmax_t size1, uintmax_t size2, uintmax_t size3)
 Set the dimensions (variant for four-dimensional arrays). More...
 
Read and Write Complete Arrays
void read_data (custom_io &io, void *data) const
 Read the complete data. More...
 
void read_data (std::istream &is, void *data) const
 Read the complete data. More...
 
void read_data (FILE *f, void *data) const
 Read the complete data. More...
 
void read_data (int fd, void *data) const
 Read the complete data. More...
 
void skip_data (custom_io &io) const
 Skip the complete data. More...
 
void skip_data (std::istream &is) const
 Skip the complete data. More...
 
void skip_data (FILE *f) const
 Skip the complete data. More...
 
void skip_data (int fd) const
 Skip the complete data. More...
 
void write_data (custom_io &io, const void *data) const
 Write the complete data. More...
 
void write_data (std::ostream &os, const void *data) const
 Write the complete data. More...
 
void write_data (FILE *f, const void *data) const
 Write the complete data. More...
 
void write_data (int fd, const void *data) const
 Write the complete data. More...
 
void copy_data (custom_io &read_io, const header &write_header, custom_io &write_io) const
 Copy the complete data. More...
 
void copy_data (std::istream &is, const header &write_header, std::ostream &os) const
 Copy the complete data. More...
 
void copy_data (FILE *fi, const header &write_header, FILE *fo) const
 Copy the complete data. More...
 
void copy_data (int fdi, const header &write_header, int fdo) const
 Copy the complete data. More...
 
In-Memory Data Access
void linear_index_to_indices (uintmax_t index, uintmax_t *indices) const
 Transform a linear index to array indices. More...
 
uintmax_t indices_to_linear_index (const uintmax_t *indices) const
 Transform array indices to a linear index. More...
 
const void * element (const void *data, const uintmax_t *indices) const
 Get an array element. More...
 
void * element (void *data, const uintmax_t *indices) const
 Get an array element. More...
 
const void * element (const void *data, uintmax_t index) const
 Get an array element via a linear index. More...
 
void * element (void *data, uintmax_t index) const
 Get an array element via a linear index. More...
 
const void * element (const void *data, uintmax_t index0, uintmax_t index1) const
 Get an array element (variant for two-dimensional arrays). More...
 
void * element (void *data, uintmax_t index0, uintmax_t index1) const
 Get an array element (variant for two-dimensional arrays). More...
 
const void * element (const void *data, uintmax_t index0, uintmax_t index1, uintmax_t index2) const
 Get an array element (variant for three-dimensional arrays). More...
 
void * element (void *data, uintmax_t index0, uintmax_t index1, uintmax_t index2) const
 Get an array element (variant for three-dimensional arrays). More...
 
const void * element (const void *data, uintmax_t index0, uintmax_t index1, uintmax_t index2, uintmax_t index3) const
 Get an array element (variant for four-dimensional arrays). More...
 
void * element (void *data, uintmax_t index0, uintmax_t index1, uintmax_t index2, uintmax_t index3) const
 Get an array element (variant for four-dimensional arrays). More...
 
const void * component (const void *element, uintmax_t i) const
 Get a component of an array element. More...
 
void * component (void *element, uintmax_t i) const
 Get a component of an array element. More...
 
Read and Write Array Elements

These functions are intended to be used for filtering a complete array on a per-element basis. They read or write a given number of elements, and it is expected that they are used repeatedly until all elements of an array have been read or written. Theses function work for all GTAs, and the input and output streams do not need to be seekable.

Element-based input/output needs a state object gta::io_state. The same state object must be used until all elements are read or written, or until an error occurs.

void read_elements (io_state &state, custom_io &io, uintmax_t n, void *buf) const
 Read array elements. More...
 
void read_elements (io_state &state, std::istream &is, uintmax_t n, void *buf) const
 Read array elements. More...
 
void read_elements (io_state &state, FILE *f, uintmax_t n, void *buf) const
 Read array elements. More...
 
void read_elements (io_state &state, int fd, uintmax_t n, void *buf) const
 Read array elements. More...
 
void write_elements (io_state &state, custom_io &io, uintmax_t n, const void *buf) const
 Write array elements. More...
 
void write_elements (io_state &state, std::ostream &os, uintmax_t n, const void *buf) const
 Write array elements. More...
 
void write_elements (io_state &state, FILE *f, uintmax_t n, const void *buf) const
 Write array elements. More...
 
void write_elements (io_state &state, int fd, uintmax_t n, const void *buf) const
 Write array elements. More...
 
Read and Write Array Blocks

These functions can only be used if the input/output is seekable.
They are suitable for applications that do not want to store the complete array data in memory.
A block is given by the lowest and highest element coordinates in each dimension. For example, for a 2D array from which we want a rectangle of 20x10 elements starting at element (5,3), we would store the values (5,3) in lower_coordinates and (24, 12) in higher_coordinates.

void read_block (custom_io &io, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, void *block) const
 Read an array block. More...
 
void read_block (std::istream &is, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, void *block) const
 Read an array block. More...
 
void read_block (FILE *f, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, void *block) const
 Read an array block. More...
 
void read_block (int fd, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, void *block) const
 Read an array block. More...
 
void write_block (custom_io &io, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, const void *block) const
 Write an array block. More...
 
void write_block (std::ostream &os, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, const void *block) const
 Write an array block. More...
 
void write_block (FILE *f, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, const void *block) const
 Write an array block. More...
 
void write_block (int fd, uintmax_t data_offset, const uintmax_t *lower_coordinates, const uintmax_t *higher_coordinates, const void *block) const
 Write an array block. More...
 

Detailed Description

The GTA header.

Each GTA file is described by its header. It stores information about the array elements and the dimensions, and the various tag lists. Using the header, one can access the data in a GTA file, either by managaing the complete data in memory (if it fits), or by using out-of-core data read/write functions. There are also functions that help the application to implement its own data access scheme, if that is necessary.

Constructor & Destructor Documentation

◆ header()

gta::header::header ( const header hdr)
inline

Copy constructor.

Parameters
hdrThe header to copy.

Member Function Documentation

◆ operator=()

const header& gta::header::operator= ( const header hdr)
inline

Assignment operator.

Parameters
hdrThe header to copy.

◆ read_from() [1/4]

void gta::header::read_from ( custom_io io)
inline

Read a header.

Parameters
ioCustom input object.

◆ read_from() [2/4]

void gta::header::read_from ( std::istream &  is)
inline

Read a header.

Parameters
isInput stream.

◆ read_from() [3/4]

void gta::header::read_from ( FILE *  f)
inline

Read a header.

Parameters
fInput C stream.

◆ read_from() [4/4]

void gta::header::read_from ( int  fd)
inline

Read a header.

Parameters
fdInput file descriptor.

◆ write_to() [1/4]

void gta::header::write_to ( custom_io io) const
inline

Write a header.

Parameters
ioCustom output object.

◆ write_to() [2/4]

void gta::header::write_to ( std::ostream &  os) const
inline

Write a header.

Parameters
osOutput stream.

◆ write_to() [3/4]

void gta::header::write_to ( FILE *  f) const
inline

Write a header.

Parameters
fOutput C stream.

◆ write_to() [4/4]

void gta::header::write_to ( int  fd) const
inline

Write a header.

Parameters
fdOutput file descriptor.

◆ global_taglist() [1/2]

const taglist& gta::header::global_taglist ( ) const
inline

Get the global tag list.

Returns
The global tag list.

◆ global_taglist() [2/2]

taglist& gta::header::global_taglist ( )
inline

Get the global tag list.

Returns
The global tag list.

◆ element_size()

uintmax_t gta::header::element_size ( ) const
inline

Get the element size.

Returns
The size of an array element.

◆ components()

uintmax_t gta::header::components ( ) const
inline

Get the number of components.

Returns
The number of components.

◆ component_type()

type gta::header::component_type ( uintmax_t  i) const
inline

Get the component type.

Parameters
iThe component index.
Returns
The type of the component.

◆ component_size()

uintmax_t gta::header::component_size ( uintmax_t  i) const
inline

Get the component size.

Parameters
iThe component index.
Returns
The size of the component.

◆ component_taglist() [1/2]

const taglist& gta::header::component_taglist ( uintmax_t  i) const
inline

Get the component tag list.

Parameters
iThe component index.
Returns
The tag list of the component.

◆ component_taglist() [2/2]

taglist& gta::header::component_taglist ( uintmax_t  i)
inline

Get the component tag list.

Parameters
iThe component index.
Returns
The tag list of the component.

◆ dimensions()

uintmax_t gta::header::dimensions ( ) const
inline

Get the number of dimensions.

Returns
The number of dimensions.

◆ dimension_size()

uintmax_t gta::header::dimension_size ( uintmax_t  i) const
inline

Get the size in a dimension.

Parameters
iThe dimension index.
Returns
The size in the dimension.

◆ dimension_taglist() [1/2]

const taglist& gta::header::dimension_taglist ( uintmax_t  i) const
inline

Get the dimension tag list.

Parameters
iThe dimension index.
Returns
The tag list of the dimension.

◆ dimension_taglist() [2/2]

taglist& gta::header::dimension_taglist ( uintmax_t  i)
inline

Get the dimension tag list.

Parameters
iThe dimension index.
Returns
The tag list of the dimension.

◆ elements()

uintmax_t gta::header::elements ( ) const
inline

Get the total number of elements in the array.

Returns
The total number of elements in the array.

◆ data_size()

uintmax_t gta::header::data_size ( ) const
inline

Get the total size of the array.

Returns
The size (in bytes) of the complete array.

◆ compression()

gta::compression gta::header::compression ( ) const
inline

Get the compression.

Returns
The compression type.

Gets the compression type for the header and data.
Compression is deprecated so the return value should always be gta::none, unless you read legacy files. This function will be removed in a future version.

◆ set_compression()

void gta::header::set_compression ( gta::compression  compression)
inline

Set the compression.

Parameters
compressionThe compression type.

Sets the compression type for writing the header and data. Compression is deprecated and this function actually does nothing. This function will be removed in a future version.

◆ set_components() [1/5]

void gta::header::set_components ( uintmax_t  n,
const type types,
const uintmax_t *  sizes = NULL 
)
inline

Set the components of an array element.

Parameters
nThe number of components.
typesThe types of the n components.
sizesNULL, or the sizes of the components that have type gta::blob.

Set the components of the array elements.
The sizes parameter can be NULL if no components have the type gta::blob. Otherwise, it must point to a list that contains the sizes of these components (and only these components). For example, if there are five components, but only two have the type gta::blob, then the sizes list must contain two size values.
All components will initially have an empty tag list.

◆ set_components() [2/5]

void gta::header::set_components ( type  type,
uintmax_t  size = 0 
)
inline

Set the components of an array element (variant for elements with a single component).

Parameters
typeThe type of the component.
sizeThe size of the component, in case the type is gta::blob.

◆ set_components() [3/5]

void gta::header::set_components ( type  type0,
type  type1,
uintmax_t  size0 = 0,
uintmax_t  size1 = 0 
)
inline

Set the components of an array element (variant for elements with two components).

Parameters
type0The type of the first component.
type1The type of the second component.
size0The size of the first component, in case its type is gta::blob.
size1The size of the second component, in case its type is gta::blob.

◆ set_components() [4/5]

void gta::header::set_components ( type  type0,
type  type1,
type  type2,
uintmax_t  size0 = 0,
uintmax_t  size1 = 0,
uintmax_t  size2 = 0 
)
inline

Set the components of an array element (variant for elements with three components).

Parameters
type0The type of the first component.
type1The type of the second component.
type2The type of the third component.
size0The size of the first component, in case its type is gta::blob.
size1The size of the second component, in case its type is gta::blob.
size2The size of the third component, in case its type is gta::blob.

◆ set_components() [5/5]

void gta::header::set_components ( type  type0,
type  type1,
type  type2,
type  type3,
uintmax_t  size0 = 0,
uintmax_t  size1 = 0,
uintmax_t  size2 = 0,
uintmax_t  size3 = 0 
)
inline

Set the components of an array element (variant for elements with four components).

Parameters
type0The type of the first component.
type1The type of the second component.
type2The type of the third component.
type3The type of the fourth component.
size0The size of the first component, in case its type is gta::blob.
size1The size of the second component, in case its type is gta::blob.
size2The size of the third component, in case its type is gta::blob.
size3The size of the fourth component, in case its type is gta::blob.

◆ set_dimensions() [1/5]

void gta::header::set_dimensions ( uintmax_t  n,
const uintmax_t *  sizes 
)
inline

Set the dimensions.

Parameters
nThe number of dimensions.
sizesThe array sizes in each of the
dimensions.

Sets the array dimensions.
All dimensions will initially have an empty tag list.

◆ set_dimensions() [2/5]

void gta::header::set_dimensions ( uintmax_t  size)
inline

Set the dimensions (variant for one-dimensional arrays).

Parameters
sizeThe size in the single dimension.

◆ set_dimensions() [3/5]

void gta::header::set_dimensions ( uintmax_t  size0,
uintmax_t  size1 
)
inline

Set the dimensions (variant for two-dimensional arrays).

Parameters
size0The size in the first dimension.
size1The size in the second dimension.

◆ set_dimensions() [4/5]

void gta::header::set_dimensions ( uintmax_t  size0,
uintmax_t  size1,
uintmax_t  size2 
)
inline

Set the dimensions (variant for three-dimensional arrays).

Parameters
size0The size in the first dimension.
size1The size in the second dimension.
size2The size in the third dimension.

◆ set_dimensions() [5/5]

void gta::header::set_dimensions ( uintmax_t  size0,
uintmax_t  size1,
uintmax_t  size2,
uintmax_t  size3 
)
inline

Set the dimensions (variant for four-dimensional arrays).

Parameters
size0The size in the first dimension.
size1The size in the second dimension.
size2The size in the third dimension.
size3The size in the fourth dimension.

◆ read_data() [1/4]

void gta::header::read_data ( custom_io io,
void *  data 
) const
inline

Read the complete data.

Parameters
ioCustom input object.
dataData buffer.

Reads the complete data into the given buffer. The buffer must be large enough.

◆ read_data() [2/4]

void gta::header::read_data ( std::istream &  is,
void *  data 
) const
inline

Read the complete data.

Parameters
isInput stream.
dataData buffer.

Reads the complete data into the given buffer. The buffer must be large enough.

◆ read_data() [3/4]

void gta::header::read_data ( FILE *  f,
void *  data 
) const
inline

Read the complete data.

Parameters
fInput C stream.
dataData buffer.

Reads the complete data into the given buffer. The buffer must be large enough.

◆ read_data() [4/4]

void gta::header::read_data ( int  fd,
void *  data 
) const
inline

Read the complete data.

Parameters
fdInput file descriptor.
dataData buffer.

Reads the complete data into the given buffer. The buffer must be large enough.

◆ skip_data() [1/4]

void gta::header::skip_data ( custom_io io) const
inline

Skip the complete data.

Parameters
ioCustom input object.

Skips the complete data, so that the next GTA header can be read.

◆ skip_data() [2/4]

void gta::header::skip_data ( std::istream &  is) const
inline

Skip the complete data.

Parameters
isInput stream.

Skips the complete data, so that the next GTA header can be read.

◆ skip_data() [3/4]

void gta::header::skip_data ( FILE *  f) const
inline

Skip the complete data.

Parameters
fInput C stream.

Skips the complete data, so that the next GTA header can be read.

◆ skip_data() [4/4]

void gta::header::skip_data ( int  fd) const
inline

Skip the complete data.

Parameters
fdInput file descriptor.

Skips the complete data, so that the next GTA header can be read.

◆ write_data() [1/4]

void gta::header::write_data ( custom_io io,
const void *  data 
) const
inline

Write the complete data.

Parameters
ioCustom output object.
dataData buffer.

◆ write_data() [2/4]

void gta::header::write_data ( std::ostream &  os,
const void *  data 
) const
inline

Write the complete data.

Parameters
osOutput stream.
dataData buffer.

◆ write_data() [3/4]

void gta::header::write_data ( FILE *  f,
const void *  data 
) const
inline

Write the complete data.

Parameters
fOutput C stream.
dataData buffer.

◆ write_data() [4/4]

void gta::header::write_data ( int  fd,
const void *  data 
) const
inline

Write the complete data.

Parameters
fdOutput file descriptor.
dataData buffer.

◆ copy_data() [1/4]

void gta::header::copy_data ( custom_io read_io,
const header write_header,
custom_io write_io 
) const
inline

Copy the complete data.

Parameters
read_ioCustom input object.
write_headerOutput header.
write_ioCustom output object.

◆ copy_data() [2/4]

void gta::header::copy_data ( std::istream &  is,
const header write_header,
std::ostream &  os 
) const
inline

Copy the complete data.

Parameters
isInput stream.
write_headerOutput header.
osOutput stream.

◆ copy_data() [3/4]

void gta::header::copy_data ( FILE *  fi,
const header write_header,
FILE *  fo 
) const
inline

Copy the complete data.

Parameters
fiInput C stream.
write_headerOutput header.
foOutput C stream.

◆ copy_data() [4/4]

void gta::header::copy_data ( int  fdi,
const header write_header,
int  fdo 
) const
inline

Copy the complete data.

Parameters
fdiInput file descriptor.
write_headerOutput header.
fdoOutput file descriptor.

◆ linear_index_to_indices()

void gta::header::linear_index_to_indices ( uintmax_t  index,
uintmax_t *  indices 
) const
inline

Transform a linear index to array indices.

Parameters
indexThe linear index.
indicesThe array indices.

◆ indices_to_linear_index()

uintmax_t gta::header::indices_to_linear_index ( const uintmax_t *  indices) const
inline

Transform array indices to a linear index.

Parameters
indicesThe array indices.
Returns
The linear index.

◆ element() [1/10]

const void* gta::header::element ( const void *  data,
const uintmax_t *  indices 
) const
inline

Get an array element.

Parameters
dataData Buffer.
indicesIndices for each dimension of the array.
Returns
A pointer to the element.

◆ element() [2/10]

void* gta::header::element ( void *  data,
const uintmax_t *  indices 
) const
inline

Get an array element.

Parameters
dataData Buffer.
indicesIndices for each dimension of the array.
Returns
A pointer to the element.

◆ element() [3/10]

const void* gta::header::element ( const void *  data,
uintmax_t  index 
) const
inline

Get an array element via a linear index.

Parameters
dataData Buffer.
indexIndex of the element.
Returns
A pointer to the element.

This function not only works for one-dimensional arrays in the obvious way, but also for multidimensional arrays by using index as a linear index to the array data.

◆ element() [4/10]

void* gta::header::element ( void *  data,
uintmax_t  index 
) const
inline

Get an array element via a linear index.

Parameters
dataData Buffer.
indexIndex of the element.
Returns
A pointer to the element.

This function not only works for one-dimensional arrays in the obvious way, but also for multidimensional arrays by using index as a linear index to the array data.

◆ element() [5/10]

const void* gta::header::element ( const void *  data,
uintmax_t  index0,
uintmax_t  index1 
) const
inline

Get an array element (variant for two-dimensional arrays).

Parameters
dataData Buffer.
index0Index of the element in the first dimension.
index1Index of the element in the second dimension.
Returns
A pointer to the element.

◆ element() [6/10]

void* gta::header::element ( void *  data,
uintmax_t  index0,
uintmax_t  index1 
) const
inline

Get an array element (variant for two-dimensional arrays).

Parameters
dataData Buffer.
index0Index of the element in the first dimension.
index1Index of the element in the second dimension.
Returns
A pointer to the element.

◆ element() [7/10]

const void* gta::header::element ( const void *  data,
uintmax_t  index0,
uintmax_t  index1,
uintmax_t  index2 
) const
inline

Get an array element (variant for three-dimensional arrays).

Parameters
dataData Buffer.
index0Index of the element in the first dimension.
index1Index of the element in the second dimension.
index2Index of the element in the third dimension.
Returns
A pointer to the element.

◆ element() [8/10]

void* gta::header::element ( void *  data,
uintmax_t  index0,
uintmax_t  index1,
uintmax_t  index2 
) const
inline

Get an array element (variant for three-dimensional arrays).

Parameters
dataData Buffer.
index0Index of the element in the first dimension.
index1Index of the element in the second dimension.
index2Index of the element in the third dimension.
Returns
A pointer to the element.

◆ element() [9/10]

const void* gta::header::element ( const void *  data,
uintmax_t  index0,
uintmax_t  index1,
uintmax_t  index2,
uintmax_t  index3 
) const
inline

Get an array element (variant for four-dimensional arrays).

Parameters
dataData Buffer.
index0Index of the element in the first dimension.
index1Index of the element in the second dimension.
index2Index of the element in the third dimension.
index3Index of the element in the fourth dimension.
Returns
A pointer to the element.

◆ element() [10/10]

void* gta::header::element ( void *  data,
uintmax_t  index0,
uintmax_t  index1,
uintmax_t  index2,
uintmax_t  index3 
) const
inline

Get an array element (variant for four-dimensional arrays).

Parameters
dataData Buffer.
index0Index of the element in the first dimension.
index1Index of the element in the second dimension.
index2Index of the element in the third dimension.
index3Index of the element in the fourth dimension.
Returns
A pointer to the element.

◆ component() [1/2]

const void* gta::header::component ( const void *  element,
uintmax_t  i 
) const
inline

Get a component of an array element.

Parameters
elementElement.
iComponent index.
Returns
A pointer to the component.

◆ component() [2/2]

void* gta::header::component ( void *  element,
uintmax_t  i 
) const
inline

Get a component of an array element.

Parameters
elementElement.
iComponent index.
Returns
A pointer to the component.

◆ read_elements() [1/4]

void gta::header::read_elements ( io_state state,
custom_io io,
uintmax_t  n,
void *  buf 
) const
inline

Read array elements.

Parameters
stateThe input/output state.
ioCustom input object.
nThe number of elements to read.
bufThe buffer for the elements.

Reads the given number of elements into the given buffer, which must be large enough.

◆ read_elements() [2/4]

void gta::header::read_elements ( io_state state,
std::istream &  is,
uintmax_t  n,
void *  buf 
) const
inline

Read array elements.

Parameters
stateThe input/output state.
isInput stream.
nThe number of elements to read.
bufThe buffer for the elements.

Reads the given number of elements into the given buffer, which must be large enough.

◆ read_elements() [3/4]

void gta::header::read_elements ( io_state state,
FILE *  f,
uintmax_t  n,
void *  buf 
) const
inline

Read array elements.

Parameters
stateThe input/output state.
fInput stream.
nThe number of elements to read.
bufThe buffer for the elements.

Reads the given number of elements into the given buffer, which must be large enough.

◆ read_elements() [4/4]

void gta::header::read_elements ( io_state state,
int  fd,
uintmax_t  n,
void *  buf 
) const
inline

Read array elements.

Parameters
stateThe input/output state.
fdInput file descriptor.
nThe number of elements to read.
bufThe buffer for the elements.

Reads the given number of elements into the given buffer, which must be large enough.

◆ write_elements() [1/4]

void gta::header::write_elements ( io_state state,
custom_io io,
uintmax_t  n,
const void *  buf 
) const
inline

Write array elements.

Parameters
stateThe input/output state.
ioCustom output object.
nThe number of elements to write.
bufThe buffer for the elements.

Writes the given number of elements from the given buffer.

◆ write_elements() [2/4]

void gta::header::write_elements ( io_state state,
std::ostream &  os,
uintmax_t  n,
const void *  buf 
) const
inline

Write array elements.

Parameters
stateThe input/output state.
osOutput stream.
nThe number of elements to write.
bufThe buffer for the elements.

Writes the given number of elements from the given buffer.

◆ write_elements() [3/4]

void gta::header::write_elements ( io_state state,
FILE *  f,
uintmax_t  n,
const void *  buf 
) const
inline

Write array elements.

Parameters
stateThe input/output state.
fOutput stream.
nThe number of elements to write.
bufThe buffer for the elements.

Writes the given number of elements from the given buffer.

◆ write_elements() [4/4]

void gta::header::write_elements ( io_state state,
int  fd,
uintmax_t  n,
const void *  buf 
) const
inline

Write array elements.

Parameters
stateThe input/output state.
fdOutput file descriptor.
nThe number of elements to write.
bufThe buffer for the elements.

Writes the given number of elements from the given buffer.

◆ read_block() [1/4]

void gta::header::read_block ( custom_io io,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
void *  block 
) const
inline

Read an array block.

Parameters
ioCustom input object.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

Reads the given array block and copies it to the given block buffer, which must be large enough.
This function modifies the file position indicator of the input.

◆ read_block() [2/4]

void gta::header::read_block ( std::istream &  is,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
void *  block 
) const
inline

Read an array block.

Parameters
isInput stream.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

Reads the given array block and copies it to the given block buffer, which must be large enough.
This function modifies the file position indicator of the input.

◆ read_block() [3/4]

void gta::header::read_block ( FILE *  f,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
void *  block 
) const
inline

Read an array block.

Parameters
fInput C stream.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

Reads the given array block and copies it to the given block buffer, which must be large enough.
This function modifies the file position indicator of the input.

◆ read_block() [4/4]

void gta::header::read_block ( int  fd,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
void *  block 
) const
inline

Read an array block.

Parameters
fdInput file descriptor.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

Reads the given array block and copies it to the given block buffer, which must be large enough.
This function modifies the file position indicator of the input.

◆ write_block() [1/4]

void gta::header::write_block ( custom_io io,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
const void *  block 
) const
inline

Write an array block.

Parameters
ioCustom output object.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

This function modifies the file position indicator of the output.

◆ write_block() [2/4]

void gta::header::write_block ( std::ostream &  os,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
const void *  block 
) const
inline

Write an array block.

Parameters
osOutput stream.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

This function modifies the file position indicator of the output.

◆ write_block() [3/4]

void gta::header::write_block ( FILE *  f,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
const void *  block 
) const
inline

Write an array block.

Parameters
fOutput C stream.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

This function modifies the file position indicator of the output.

◆ write_block() [4/4]

void gta::header::write_block ( int  fd,
uintmax_t  data_offset,
const uintmax_t *  lower_coordinates,
const uintmax_t *  higher_coordinates,
const void *  block 
) const
inline

Write an array block.

Parameters
fdOutput file descriptor.
data_offsetOffset of the first data byte.
lower_coordinatesCoordinates of the lower corner element of the block.
higher_coordinatesCoordinates of the higher corner element of the block.
blockBlock buffer.

This function modifies the file position indicator of the output.


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