Input from unstructured files

Input from unstructured files

Synopsis




                    GsfInput;
guint8const *       gsf_input_read                      (GsfInput *input,
                                                         size_t num_bytes,
                                                         guint8 *optional_buffer);
gsf_off_t           gsf_input_tell                      (GsfInput *input);
gboolean            gsf_input_seek                      (GsfInput *input,
                                                         gsf_off_t offset,
                                                         GSeekType whence);
GsfInfile*          gsf_input_container                 (GsfInput *input);
GsfInput*           gsf_input_dup                       (GsfInput *input,
                                                         GError **err);
gsf_off_t           gsf_input_size                      (GsfInput *input);
gboolean            gsf_input_eof                       (GsfInput *input);
gsf_off_t           gsf_input_remaining                 (GsfInput *input);
GQuark              gsf_input_error_id                  (void);
GsfInput*           gsf_input_sibling                   (GsfInput const *input,
                                                         char const *name,
                                                         GError **err);
GQuark              gsf_input_error                     (void);
charconst   *       gsf_input_name                      (GsfInput *input);
gboolean            gsf_input_set_name_from_filename    (GsfInput *input,
                                                         char const *filename);
                    GsfInputProxy;
GsfInput*           gsf_input_proxy_new                 (GsfInput *source);
GsfInput*           gsf_input_proxy_new_section         (GsfInput *source,
                                                         gsf_off_t offset,
                                                         gsf_off_t size);

gboolean            gsf_input_copy                      (GsfInput *input,
                                                         GsfOutput *output);
GsfInput*           gsf_input_uncompress                (GsfInput *src);


Object Hierarchy


  GObject
   +----GsfInput
         +----GsfInfile
         +----GsfInputGZip
         +----GsfInputMemory
         +----GsfInputProxy
         +----GsfInputStdio
         +----GsfInputTextline

  GObject
   +----GsfInput
         +----GsfInputProxy

Properties


  "eof"                      gboolean              : Read
  "name"                     gchararray            : Read
  "position"                 gint64                : Read
  "remaining"                gint64                : Read
  "size"                     gint64                : Read

Description

Details

GsfInput

typedef struct _GsfInput GsfInput;

Class representing an input stream.


gsf_input_read ()

guint8const *       gsf_input_read                      (GsfInput *input,
                                                         size_t num_bytes,
                                                         guint8 *optional_buffer);

Read at least num_bytes. Does not change the current position if there is an error. Will only read if the entire amount can be read. Invalidates the buffer associated with previous calls to gsf_input_read.

input :

the input stream

num_bytes :

number of bytes to read

optional_buffer :

NULL, or pointer to destination memory area

Returns :

pointer to the buffer or NULL if there is an error or 0 bytes are requested.

gsf_input_tell ()

gsf_off_t           gsf_input_tell                      (GsfInput *input);

input :

the input stream

Returns :

the current offset in the file.

gsf_input_seek ()

gboolean            gsf_input_seek                      (GsfInput *input,
                                                         gsf_off_t offset,
                                                         GSeekType whence);

Move the current location in the input stream.

input :

the input stream

offset :

target offset

whence :

determines whether the offset is relative to the beginning or the end of the stream, or to the current location.

Returns :

TRUE on error.

gsf_input_container ()

GsfInfile*          gsf_input_container                 (GsfInput *input);

input :

the input stream

Returns :

but does not add a reference to input's container. Potentially NULL

gsf_input_dup ()

GsfInput*           gsf_input_dup                       (GsfInput *input,
                                                         GError **err);

Duplicates input src leaving the new one at the same offset.

input :

The input to duplicate

err :

optionally NULL

Returns :

the duplicate, or NULL on error

gsf_input_size ()

gsf_off_t           gsf_input_size                      (GsfInput *input);

Looks up and caches the number of bytes in the input

input :

The input

Returns :

the size or -1 on error

gsf_input_eof ()

gboolean            gsf_input_eof                       (GsfInput *input);

Are we at the end of the file ?

input :

the input

Returns :

TRUE if the input is at the eof.

gsf_input_remaining ()

gsf_off_t           gsf_input_remaining                 (GsfInput *input);

input :

the input stream

Returns :

the number of bytes left in the file.

gsf_input_error_id ()

GQuark              gsf_input_error_id                  (void);

Returns :

A utility quark to flag a GError as being an input problem.

gsf_input_sibling ()

GsfInput*           gsf_input_sibling                   (GsfInput const *input,
                                                         char const *name,
                                                         GError **err);

input :

name :

err :

Returns :


gsf_input_error ()

GQuark              gsf_input_error                     (void);

Deprecated as of GSF 1.12.0; use gsf_input_error_id() instead.

Returns :

A utility quark to flag a GError as being an input problem.

gsf_input_name ()

charconst   *       gsf_input_name                      (GsfInput *input);

The name of the input stream.

input :

the input stream

Returns :

input's name in utf8 form, or NULL if it has no name.

gsf_input_set_name_from_filename ()

gboolean            gsf_input_set_name_from_filename    (GsfInput *input,
                                                         char const *filename);

protected.

input :

the input stream

filename :

the (fs-sys encoded) filename

Returns :

TRUE if the assignment was ok.

GsfInputProxy

typedef struct _GsfInputProxy GsfInputProxy;


gsf_input_proxy_new ()

GsfInput*           gsf_input_proxy_new                 (GsfInput *source);

This creates a new proxy to the entire, given input source. See gsf_input_proxy_new_section for details.

source :

The underlying data source.

Returns :

a new input object.

gsf_input_proxy_new_section ()

GsfInput*           gsf_input_proxy_new_section         (GsfInput *source,
                                                         gsf_off_t offset,
                                                         gsf_off_t size);

This creates a new proxy to a section of the given source. The new object will have its own current position, but any operation on it can change the source's position.

If a proxy to a proxy is created, the intermediate proxy is short- circuited.

This function will ref the source.

source :

The underlying data source.

offset :

Offset into source for start of section.

size :

Length of section.

Returns :

a new input object.

gsf_input_copy ()

gboolean            gsf_input_copy                      (GsfInput *input,
                                                         GsfOutput *output);

Copy the contents from input to output from their respective current positions. So if you want to be sure to copy *everything*, make sure to call gsf_input_seek (input, 0, G_SEEK_SET) and gsf_output_seek (output, 0, G_SEEK_SET) first, if applicable.

input :

a non-null GsfInput

output :

a non-null GsfOutput

Returns :

TRUE on Success

gsf_input_uncompress ()

GsfInput*           gsf_input_uncompress                (GsfInput *src);

src :

stream to be uncompressed.

Returns :

A stream equivalent to the source stream, but uncompressed if the source was compressed. This functions takes ownership of the incoming reference and yields a new one as its output.

Property Details

The "eof" property

  "eof"                      gboolean              : Read

End Of File.

Default value: FALSE


The "name" property

  "name"                     gchararray            : Read

The Input's Name.

Default value: NULL


The "position" property

  "position"                 gint64                : Read

The Output's Current Position.

Allowed values: >= 0

Default value: 0


The "remaining" property

  "remaining"                gint64                : Read

Amount of Data Remaining.

Allowed values: >= 0

Default value: 0


The "size" property

  "size"                     gint64                : Read

The Input's Size.

Allowed values: >= 0

Default value: 0