vbi_export Struct Reference
High Level Decoding » Exporting formatted Teletext and Closed Caption pages » Internal export module interface

`#include <export.h>`

## Data Fields

vbi_export_class * | _class
char * | errstr
const char * | name
char * | network
char * | creator
vbi_bool | reveal
enum _vbi_export_target | target
union { |
FILE * fp |
int fd |
} | _handle
_vbi_export_write_fn * | _write
struct { |
char * data |
size_t offset |
size_t capacity |
} | buffer
vbi_bool | write_error

## Detailed Description

Structure representing an export module instance, part of the private export module interface.

Export modules can read, but do not normally write its fields, as they are maintained by the public libzvbi export functions.

Examples
  src/exp-templ.c.

## Field Documentation

## _class

vbi_export_class* vbi_export::_class

Points back to export module description.

Referenced by vbi_export_alloc(), vbi_export_file(), vbi_export_mem(), vbi_export_new(), and vbi_export_stdio().

## errstr

char* vbi_export::errstr

Frontend private.

Referenced by vbi_export_new().

## name

const char* vbi_export::name

If `target` is `VBI_EXPORT_FILE` the name of the file we are writing to, as supplied by the client. Otherwise `NULL`. This is intended for debugging and error messages.

Referenced by vbi_export_file(), and vbi_export_new().

## network

char* vbi_export::network

Generic option: Network name or `NULL`.

## creator

char* vbi_export::creator

Generic option: Creator name [by default "libzvbi"] or `NULL`.

## reveal

vbi_bool vbi_export::reveal

Generic option: Reveal hidden characters.

## target

enum _vbi_export_target vbi_export::target

The export target. Note _vbi_export_grow_buffer_space() may change the target from TARGET_MEM to TARGET_ALLOC if the buffer supplied by the application is too small.

Referenced by vbi_export_alloc(), vbi_export_file(), vbi_export_mem(), and vbi_export_stdio().

## [union]

union { ... } vbi_export::_handle

If target is `VBI_EXPORT_TARGET_FP` or `VBI_EXPORT_TARGET_FD` the file pointer or file descriptor supplied by the client. If `VBI_EXPORT_TARGET_FILE` the file descriptor of the file we opened. Otherwise undefined.

Private field. Not to be accessed by export modules.

Referenced by vbi_export_file(), vbi_export_new(), and vbi_export_stdio().

## _write

_vbi_export_write_fn* vbi_export::_write

Function to write data into _handle.

Private field. Not to be accessed by export modules.

Referenced by vbi_export_alloc(), vbi_export_file(), vbi_export_mem(), and vbi_export_stdio().

## data

char* vbi_export::data

Pointer to the start of the buffer in memory. `NULL` if capacity is zero.

Referenced by vbi_export_alloc(), vbi_export_file(), vbi_export_mem(), and vbi_export_stdio().

## offset

size_t vbi_export::offset

The number of bytes written into the buffer so far. Must be <= `capacity`.

Referenced by vbi_export_alloc(), and vbi_export_mem().

## capacity

size_t vbi_export::capacity

Number of bytes we can store in the buffer, may be zero.

Call _vbi_export_grow_buffer_space() to increase the capacity. Keep in mind this may change the data pointer.

Referenced by vbi_export_alloc(), and vbi_export_mem().

## [struct]

struct { ... } vbi_export::buffer

Output buffer. Export modules can write into this buffer directly after ensuring sufficient capacity, and/or call the vbi_export_putc() etc functions. Keep in mind these functions may call realloc(), changing the data pointer, and/or vbi_export_flush(), changing the offset.

Referenced by vbi_export_alloc(), vbi_export_file(), vbi_export_mem(), and vbi_export_stdio().

## write_error

vbi_bool vbi_export::write_error

A write error occurred (like ferror()).

Referenced by vbi_export_alloc(), vbi_export_file(), vbi_export_mem(), and vbi_export_stdio().