cr-input

cr-input

Types and Values

struct CRInput
struct CRInputPos
  CRInputPriv

Description

Functions

cr_input_new_from_buf ()

CRInput *
cr_input_new_from_buf (guchar *a_buf,
                       gulong a_len,
                       enum CREncoding a_enc,
                       gboolean a_free_buf);

Creates a new input stream from a memory buffer. Returns the newly built instance of CRInput.

Parameters

a_buf

the memory buffer to create the input stream from. The CRInput keeps this pointer so user should not free it !.

 

a_len

the size of the input buffer.

 

a_enc

the buffer's encoding.

 

a_free_buf

if set to TRUE, this a_buf will be freed at the destruction of this instance. If set to false, it is up to the caller to free it.

 

cr_input_new_from_uri ()

CRInput *
cr_input_new_from_uri (const gchar *a_file_uri,
                       enum CREncoding a_enc);

Creates a new input stream from a file.

Returns the newly created input stream if this method could read the file and create it, NULL otherwise.

Parameters

a_file_uri

the file to create *the input stream from.

 

a_enc

the encoding of the file *to create the input from.

 

cr_input_destroy ()

void
cr_input_destroy (CRInput *a_this);

The destructor of the CRInput class.

Parameters

a_this

the current instance of CRInput.

 

cr_input_ref ()

void
cr_input_ref (CRInput *a_this);

Increments the reference count of the current instance of CRInput.

Parameters

a_this

the current instance of CRInput.

 

cr_input_unref ()

gboolean
cr_input_unref (CRInput *a_this);

Decrements the reference count of this instance of CRInput. If the reference count goes down to zero, this instance is destroyed.

Returns TRUE if the instance of CRInput got destroyed, false otherwise.

Parameters

a_this

the current instance of CRInput.

 

cr_input_read_byte ()

enum CRStatus
cr_input_read_byte (CRInput *a_this,
                    guchar *a_byte);

Gets the next byte of the input. Updates the state of the input so that the next invocation of this method returns the next coming byte.

Returns CR_OK upon successful completion, an error code otherwise. All the out parameters of this method are valid if and only if this method returns CR_OK.

Parameters

a_this

the current instance of CRInput.

 

a_byte

out parameter the returned byte.

 

cr_input_read_char ()

enum CRStatus
cr_input_read_char (CRInput *a_this,
                    guint32 *a_char);

Reads an unicode character from the current instance of CRInput.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current instance of CRInput.

 

a_char

out parameter. The read character.

 

cr_input_consume_chars ()

enum CRStatus
cr_input_consume_chars (CRInput *a_this,
                        guint32 a_char,
                        gulong *a_nb_char);

Consumes up to a_nb_char occurences of the next contiguous characters which equal a_char. Note that the next character of the input stream *MUST* equal a_char to trigger the consumption, or else, the error code CR_PARSING_ERROR is returned. If the number of contiguous characters that equals a_char is less than a_nb_char, then this function consumes all the characters it can consume.

Returns CR_OK if at least one character has been consumed, an error code otherwise.

Parameters

a_this

the this pointer of the current instance of CRInput.

 

a_char

the character to consume.

 

a_nb_char

in/out parameter. The number of characters to consume. If set to a negative value, the function will consume all the occurences of a_char found. After return, if the return value equals CR_OK, this variable contains the number of characters actually consumed.

 

cr_input_consume_char ()

enum CRStatus
cr_input_consume_char (CRInput *a_this,
                       guint32 a_char);

Consumes the next character of the input stream if and only if that character equals a_char.

Returns CR_OK upon successful completion, CR_PARSING_ERROR if next char is different from a_char, an other error code otherwise

Parameters

a_this

the this pointer.

 

a_char

the character to consume. If set to zero, consumes any character.

 

cr_input_consume_white_spaces ()

enum CRStatus
cr_input_consume_white_spaces (CRInput *a_this,
                               gulong *a_nb_chars);

Same as cr_input_consume_chars() but this one consumes white spaces.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_nb_chars

in/out parameter. The number of white spaces to consume. After return, holds the number of white spaces actually consumed.

 

cr_input_peek_byte ()

enum CRStatus
cr_input_peek_byte (CRInput const *a_this,
                    enum CRSeekPos a_origin,
                    gulong a_offset,
                    guchar *a_byte);

Gets a byte from the input stream, starting from the current position in the input stream. Unlike cr_input_peek_next_byte() this method does not update the state of the current input stream. Subsequent calls to cr_input_peek_byte with the same arguments will return the same byte.

Returns CR_OK upon successful completion or, CR_BAD_PARAM_ERROR if at least one of the parameters is invalid; CR_OUT_OF_BOUNDS_ERROR if the indexed byte is out of bounds.

Parameters

a_this

the current instance of CRInput.

 

a_origin

the origin to consider in the calculation of the position of the byte to peek.

 

a_offset

the offset of the byte to peek, starting from the origin specified by a_origin.

 

a_byte

out parameter the peeked byte.

 

cr_input_peek_byte2 ()

guchar
cr_input_peek_byte2 (CRInput const *a_this,
                     gulong a_offset,
                     gboolean *a_eof);

Same as cr_input_peek_byte() but with a simplified interface.

Returns the read byte or 0 if something bad happened.

Parameters

a_this

the current byte input stream.

 

a_offset

the offset of the byte to peek, starting from the current input position pointer.

 

a_eof

out parameter. Is set to true is we reach end of stream. If set to NULL by the caller, this parameter is not taken in account.

 

cr_input_peek_char ()

enum CRStatus
cr_input_peek_char (CRInput const *a_this,
                    guint32 *a_char);

Same as cr_input_read_char() but does not update the internal state of the input stream. The next call to cr_input_peek_char() or cr_input_read_char() will thus return the same character as the current one.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current instance of CRInput.

 

a_char

out parameter. The returned character.

 

cr_input_get_byte_addr ()

guchar *
cr_input_get_byte_addr (CRInput *a_this,
                        gulong a_offset);

Gets the memory address of the byte located at a given offset in the input stream.

Returns the address, otherwise NULL if an error occurred.

Parameters

a_this

the current instance of CRInput.

 

a_offset

the offset of the byte in the input stream starting from the beginning of the stream.

 

cr_input_get_cur_byte_addr ()

enum CRStatus
cr_input_get_cur_byte_addr (CRInput *a_this,
                            guchar **a_offset);

Gets the address of the current character pointer.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current input stream

 

a_offset

out parameter. The returned address.

 

cr_input_seek_index ()

enum CRStatus
cr_input_seek_index (CRInput *a_this,
                     enum CRSeekPos a_origin,
                     gint a_pos);

Sets the "current byte index" of the current instance of CRInput. Next call to cr_input_get_byte() will return the byte next after the new "current byte index".

Returns CR_OK upon successful completion otherwise returns CR_BAD_PARAM_ERROR if at least one of the parameters is not valid or CR_OUT_BOUNDS_ERROR in case of error.

Parameters

a_this

the current instance of CRInput.

 

a_origin

the origin to consider during the calculation of the absolute position of the new "current byte index".

 

a_pos

the relative offset of the new "current byte index." This offset is relative to the origin a_origin.

 

cr_input_get_cur_index ()

enum CRStatus
cr_input_get_cur_index (CRInput const *a_this,
                        glong *a_index);

Getter of the next byte index. It actually returns the index of the next byte to be read.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput

 

a_index

out parameter. The returned index.

 

cr_input_set_cur_index ()

enum CRStatus
cr_input_set_cur_index (CRInput *a_this,
                        glong a_index);

Setter of the next byte index. It sets the index of the next byte to be read.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput .

 

a_index

the new index to set.

 

cr_input_get_cur_pos ()

enum CRStatus
cr_input_get_cur_pos (CRInput const *a_this,
                      CRInputPos *a_pos);

Gets the position of the "current byte index" which is basically the position of the last returned byte in the input stream.

Returns CR_OK upon successful completion. Otherwise, CR_BAD_PARAMETER_ERROR if at least one of the arguments is invalid. CR_START_OF_INPUT if no call to either cr_input_read_byte() or cr_input_seek_index() have been issued before calling cr_input_get_cur_pos() Note that the out parameters of this function are valid if and only if this function returns CR_OK.

Parameters

a_this

the current instance of CRInput.

 

a_pos

out parameter. The returned position.

 

cr_input_set_cur_pos ()

enum CRStatus
cr_input_set_cur_pos (CRInput *a_this,
                      CRInputPos const *a_pos);

Sets the current position in the input stream.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_pos

the new position.

 

cr_input_get_parsing_location ()

enum CRStatus
cr_input_get_parsing_location (CRInput const *a_this,
                               CRParsingLocation *a_loc);

Gets the current parsing location. The Parsing location is a public datastructure that represents the current line/column/byte offset/ in the input stream.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current instance of CRInput

 

a_loc

the set parsing location.

 

cr_input_get_end_of_line ()

enum CRStatus
cr_input_get_end_of_line (CRInput const *a_this,
                          gboolean *a_eol);

Gets the end of line flag of the current input.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current instance of CRInput

 

a_eol

out parameter. The place to put the returned flag

 

cr_input_set_end_of_line ()

enum CRStatus
cr_input_set_end_of_line (CRInput *a_this,
                          gboolean a_eol);

Sets the end of line flag.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current instance of CRInput.

 

a_eol

the new end of line flag.

 

cr_input_get_end_of_file ()

enum CRStatus
cr_input_get_end_of_file (CRInput const *a_this,
                          gboolean *a_eof);

Gets the end of file flag.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current instance of CRInput.

 

a_eof

out parameter the place to put the end of file flag.

 

cr_input_set_end_of_file ()

enum CRStatus
cr_input_set_end_of_file (CRInput *a_this,
                          gboolean a_eof);

Sets the end of file flag.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the current instance of CRInput.

 

a_eof

the new end of file flag.

 

cr_input_set_line_num ()

enum CRStatus
cr_input_set_line_num (CRInput *a_this,
                       glong a_line_num);

Setter of the current line number.

Return CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_line_num

the new line number.

 

cr_input_get_line_num ()

enum CRStatus
cr_input_get_line_num (CRInput const *a_this,
                       glong *a_line_num);

Getter of the current line number.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_line_num

the returned line number.

 

cr_input_set_column_num ()

enum CRStatus
cr_input_set_column_num (CRInput *a_this,
                         glong a_col);

Setter of the current column number.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_col

the new column number.

 

cr_input_get_column_num ()

enum CRStatus
cr_input_get_column_num (CRInput const *a_this,
                         glong *a_col);

Getter of the current column number.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_col

out parameter

 

cr_input_increment_line_num ()

enum CRStatus
cr_input_increment_line_num (CRInput *a_this,
                             glong a_increment);

Increments the current line number.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_increment

the increment to add to the line number.

 

cr_input_increment_col_num ()

enum CRStatus
cr_input_increment_col_num (CRInput *a_this,
                            glong a_increment);

Increments the current column number.

Returns CR_OK upon successful completion, an error code otherwise.

Parameters

a_this

the "this pointer" of the current instance of CRInput.

 

a_increment

the increment to add to the column number.

 

cr_input_get_nb_bytes_left ()

glong
cr_input_get_nb_bytes_left (CRInput const *a_this);

Returns the number of bytes left in the input stream before the end, -1 in case of error.

Parameters

a_this

the current instance of CRInput.

 

cr_input_end_of_input ()

enum CRStatus
cr_input_end_of_input (CRInput const *a_this,
                       gboolean *a_end_of_input);

Tests wether the current instance of CRInput has reached its input buffer.

Returns CR_OK upon successful completion, an error code otherwise. Note that all the out parameters of this method are valid if and only if this method returns CR_OK.

Parameters

a_this

the current instance of CRInput.

 

a_end_of_input

out parameter. Is set to TRUE if the current instance has reached the end of its input buffer, FALSE otherwise.

 

Types and Values

struct CRInput

struct CRInput {
        CRInputPriv *priv ;
};

struct CRInputPos

struct CRInputPos {
        glong line ;
        glong col ;
        gboolean end_of_file ;
        gboolean end_of_line ;
        glong next_byte_index ;
};

CRInputPriv

typedef struct _CRInputPriv CRInputPriv;