Libcroco
cr-input.h
Go to the documentation of this file.
1 /* -*- Mode: C; indent-tabs-mode:nil; c-basic-offset:8 -*- */
2 
3 /*
4  * This file is part of The Croco Library
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of version 2.1 of the GNU Lesser General Public
8  * License as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18  * USA
19  *
20  * Author: Dodji Seketeli
21  * See the COPYRIGHTS file for copyrights information.
22  */
23 
24 #ifndef __CR_INPUT_SRC_H__
25 #define __CR_INPUT_SRC_H__
26 
27 
28 #include <glib.h>
29 #include "cr-utils.h"
30 #include "cr-parsing-location.h"
31 
32 G_BEGIN_DECLS
33 
34 /**
35  *@file
36  *The libcroco basic input stream class
37  *declaration file.
38  */
39 
40 typedef struct _CRInput CRInput ;
41 typedef struct _CRInputPriv CRInputPriv ;
42 
43 /**
44  *The #CRInput class provides the abstraction of
45  *an utf8-encoded character stream.
46  */
47 struct _CRInput
48 {
50 } ;
51 
52 typedef struct _CRInputPos CRInputPos ;
53 
55 {
56  glong line ;
57  glong col ;
58  gboolean end_of_file ;
59  gboolean end_of_line ;
61 } ;
62 
63 CRInput *
64 cr_input_new_from_buf (guchar *a_buf, gulong a_len,
65  enum CREncoding a_enc, gboolean a_free_buf) ;
66 CRInput *
67 cr_input_new_from_uri (const gchar *a_file_uri,
68  enum CREncoding a_enc) ;
69 
70 void
71 cr_input_destroy (CRInput *a_this) ;
72 
73 void
74 cr_input_ref (CRInput *a_this) ;
75 
76 gboolean
77 cr_input_unref (CRInput *a_this) ;
78 
79 enum CRStatus
80 cr_input_read_byte (CRInput *a_this, guchar *a_byte) ;
81 
82 enum CRStatus
83 cr_input_read_char (CRInput *a_this, guint32 *a_char) ;
84 
85 enum CRStatus
86 cr_input_consume_chars (CRInput *a_this, guint32 a_char,
87  gulong *a_nb_char) ;
88 
89 enum CRStatus
90 cr_input_consume_char (CRInput *a_this, guint32 a_char) ;
91 
92 enum CRStatus
93 cr_input_consume_white_spaces (CRInput *a_this, gulong *a_nb_chars) ;
94 
95 enum CRStatus
96 cr_input_peek_byte (CRInput const *a_this, enum CRSeekPos a_origin,
97  gulong a_offset, guchar *a_byte) ;
98 
99 guchar
100 cr_input_peek_byte2 (CRInput const *a_this, gulong a_offset,
101  gboolean *a_eof) ;
102 
103 enum CRStatus
104 cr_input_peek_char (CRInput const *a_this, guint32 *a_char) ;
105 
106 guchar *
108  gulong a_offset) ;
109 
110 enum CRStatus
111 cr_input_get_cur_byte_addr (CRInput *a_this, guchar ** a_offset) ;
112 
113 enum CRStatus
114 cr_input_seek_index (CRInput *a_this,
115  enum CRSeekPos a_origin, gint a_pos) ;
116 
117 enum CRStatus
118 cr_input_get_cur_index (CRInput const *a_this, glong *a_index) ;
119 
120 enum CRStatus
121 cr_input_set_cur_index (CRInput *a_this, glong a_index) ;
122 
123 enum CRStatus
124 cr_input_get_cur_pos (CRInput const *a_this, CRInputPos * a_pos) ;
125 
126 enum CRStatus
127 cr_input_set_cur_pos (CRInput *a_this, CRInputPos const *a_pos) ;
128 
129 enum CRStatus
131  CRParsingLocation *a_loc) ;
132 
133 enum CRStatus
134 cr_input_get_end_of_line (CRInput const *a_this, gboolean *a_eol) ;
135 
136 enum CRStatus
137 cr_input_set_end_of_line (CRInput *a_this, gboolean a_eol) ;
138 
139 enum CRStatus
140 cr_input_get_end_of_file (CRInput const *a_this, gboolean *a_eof) ;
141 
142 enum CRStatus
143 cr_input_set_end_of_file (CRInput *a_this, gboolean a_eof) ;
144 
145 enum CRStatus
146 cr_input_set_line_num (CRInput *a_this, glong a_line_num) ;
147 
148 enum CRStatus
149 cr_input_get_line_num (CRInput const *a_this, glong *a_line_num) ;
150 
151 enum CRStatus
152 cr_input_set_column_num (CRInput *a_this, glong a_col) ;
153 
154 enum CRStatus
155 cr_input_get_column_num (CRInput const *a_this, glong *a_col) ;
156 
157 enum CRStatus
159  glong a_increment) ;
160 
161 enum CRStatus
163  glong a_increment) ;
164 
165 glong
166 cr_input_get_nb_bytes_left (CRInput const *a_this) ;
167 
168 enum CRStatus
169 cr_input_end_of_input (CRInput const *a_this, gboolean *a_end_of_input) ;
170 
171 G_END_DECLS
172 
173 #endif /*__CR_INPUT_SRC_H__*/
174 
cr_input_increment_col_num
enum CRStatus cr_input_increment_col_num(CRInput *a_this, glong a_increment)
cr_input_increment_col_num: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:600
cr_input_get_column_num
enum CRStatus cr_input_get_column_num(CRInput const *a_this, glong *a_col)
cr_input_get_column_num: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:561
_CRInputPos::next_byte_index
glong next_byte_index
Definition: cr-input.h:60
_CRInput::priv
CRInputPriv * priv
Definition: cr-input.h:49
cr_input_seek_index
enum CRStatus cr_input_seek_index(CRInput *a_this, enum CRSeekPos a_origin, gint a_pos)
cr_input_seek_index: @a_this: the current instance of CRInput.
Definition: cr-input.c:940
cr_input_set_end_of_line
enum CRStatus cr_input_set_end_of_line(CRInput *a_this, gboolean a_eol)
cr_input_set_end_of_line: @a_this: the current instance of CRInput.
Definition: cr-input.c:1137
cr_input_consume_white_spaces
enum CRStatus cr_input_consume_white_spaces(CRInput *a_this, gulong *a_nb_chars)
cr_input_consume_white_spaces: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:704
cr_input_destroy
void cr_input_destroy(CRInput *a_this)
cr_input_destroy: @a_this: the current instance of CRInput.
Definition: cr-input.c:283
cr_input_get_end_of_file
enum CRStatus cr_input_get_end_of_file(CRInput const *a_this, gboolean *a_eof)
cr_input_get_end_of_file: @a_this: the current instance of CRInput.
Definition: cr-input.c:1116
cr_input_end_of_input
enum CRStatus cr_input_end_of_input(CRInput const *a_this, gboolean *a_end_of_input)
cr_input_end_of_input: @a_this: the current instance of CRInput.
Definition: cr-input.c:357
cr_input_increment_line_num
enum CRStatus cr_input_increment_line_num(CRInput *a_this, glong a_increment)
cr_input_increment_line_num: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:581
cr_input_set_cur_pos
enum CRStatus cr_input_set_cur_pos(CRInput *a_this, CRInputPos const *a_pos)
cr_input_set_cur_pos: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:1179
cr_input_peek_char
enum CRStatus cr_input_peek_char(CRInput const *a_this, guint32 *a_char)
cr_input_peek_char: @a_this: the current instance of CRInput.
Definition: cr-input.c:755
_CRInputPos::end_of_line
gboolean end_of_line
Definition: cr-input.h:59
cr_input_new_from_uri
CRInput * cr_input_new_from_uri(const gchar *a_file_uri, enum CREncoding a_enc)
cr_input_new_from_uri: @a_file_uri: the file to create *the input stream from.
Definition: cr-input.c:196
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)
cr_input_new_from_buf: @a_buf: the memory buffer to create the input stream from.
Definition: cr-input.c:129
_CRInputPos::line
glong line
Definition: cr-input.h:56
_CRInputPos::end_of_file
gboolean end_of_file
Definition: cr-input.h:58
cr_input_peek_byte2
guchar cr_input_peek_byte2(CRInput const *a_this, gulong a_offset, gboolean *a_eof)
cr_input_peek_byte2: @a_this: the current byte input stream.
Definition: cr-input.c:856
_CRInputPos
Definition: cr-input.h:54
cr_input_get_byte_addr
guchar * cr_input_get_byte_addr(CRInput *a_this, gulong a_offset)
cr_input_get_byte_addr: @a_this: the current instance of CRInput.
Definition: cr-input.c:887
cr_input_get_parsing_location
enum CRStatus cr_input_get_parsing_location(CRInput const *a_this, CRParsingLocation *a_loc)
cr_input_get_parsing_location: @a_this: the current instance of CRInput @a_loc: the set parsing locat...
Definition: cr-input.c:1023
_CRInputPriv
@CRInput:
Definition: cr-input.c:43
cr_input_get_cur_pos
enum CRStatus cr_input_get_cur_pos(CRInput const *a_this, CRInputPos *a_pos)
cr_input_get_cur_pos: @a_this: the current instance of CRInput.
Definition: cr-input.c:995
cr_input_read_char
enum CRStatus cr_input_read_char(CRInput *a_this, guint32 *a_char)
cr_input_read_char: @a_this: the current instance of CRInput.
Definition: cr-input.c:448
cr_input_unref
gboolean cr_input_unref(CRInput *a_this)
cr_input_unref: @a_this: the current instance of CRInput.
Definition: cr-input.c:327
cr_input_get_nb_bytes_left
glong cr_input_get_nb_bytes_left(CRInput const *a_this)
cr_input_get_nb_bytes_left: @a_this: the current instance of CRInput.
Definition: cr-input.c:376
_CRInput
The CRInput class provides the abstraction of an utf8-encoded character stream.
Definition: cr-input.h:47
_CRParsingLocation
Definition: cr-parsing-location.h:39
cr_input_get_cur_index
enum CRStatus cr_input_get_cur_index(CRInput const *a_this, glong *a_index)
cr_input_get_cur_index: @a_this: the "this pointer" of the current instance of CRInput @a_index: out ...
Definition: cr-input.c:1055
cr_input_set_column_num
enum CRStatus cr_input_set_column_num(CRInput *a_this, glong a_col)
cr_input_set_column_num: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:542
cr_input_get_line_num
enum CRStatus cr_input_get_line_num(CRInput const *a_this, glong *a_line_num)
cr_input_get_line_num: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:522
cr_input_ref
void cr_input_ref(CRInput *a_this)
cr_input_ref: @a_this: the current instance of CRInput.
Definition: cr-input.c:309
cr_input_get_cur_byte_addr
enum CRStatus cr_input_get_cur_byte_addr(CRInput *a_this, guchar **a_offset)
cr_input_get_cur_byte_addr: @a_this: the current input stream @a_offset: out parameter.
Definition: cr-input.c:908
cr_input_peek_byte
enum CRStatus cr_input_peek_byte(CRInput const *a_this, enum CRSeekPos a_origin, gulong a_offset, guchar *a_byte)
cr_input_peek_byte: @a_this: the current instance of CRInput.
Definition: cr-input.c:804
cr_input_set_cur_index
enum CRStatus cr_input_set_cur_index(CRInput *a_this, glong a_index)
cr_input_set_cur_index: @a_this: the "this pointer" of the current instance of CRInput .
Definition: cr-input.c:1077
cr_input_get_end_of_line
enum CRStatus cr_input_get_end_of_line(CRInput const *a_this, gboolean *a_eol)
cr_input_get_end_of_line: @a_this: the current instance of CRInput @a_eol: out parameter.
Definition: cr-input.c:1158
cr-parsing-location.h
CREncoding
CREncoding
Encoding values.
Definition: cr-utils.h:84
cr_input_consume_chars
enum CRStatus cr_input_consume_chars(CRInput *a_this, guint32 a_char, gulong *a_nb_char)
cr_input_consume_chars: @a_this: the this pointer of the current instance of CRInput.
Definition: cr-input.c:663
cr_input_set_end_of_file
enum CRStatus cr_input_set_end_of_file(CRInput *a_this, gboolean a_eof)
cr_input_set_end_of_file: @a_this: the current instance of CRInput.
Definition: cr-input.c:1096
cr_input_set_line_num
enum CRStatus cr_input_set_line_num(CRInput *a_this, glong a_line_num)
cr_input_set_line_num: @a_this: the "this pointer" of the current instance of CRInput.
Definition: cr-input.c:503
CRStatus
CRStatus
The status type returned by the methods of the croco library.
Definition: cr-utils.h:43
cr-utils.h
cr_input_consume_char
enum CRStatus cr_input_consume_char(CRInput *a_this, guint32 a_char)
cr_input_consume_char: @a_this: the this pointer.
Definition: cr-input.c:622
cr_input_read_byte
enum CRStatus cr_input_read_byte(CRInput *a_this, guchar *a_byte)
cr_input_read_byte: @a_this: the current instance of CRInput.
Definition: cr-input.c:405
_CRInputPos::col
glong col
Definition: cr-input.h:57
CRSeekPos
CRSeekPos
Values used by cr_input_seek_position() ;.
Definition: cr-utils.h:75