17 #ifndef APT_TEXT_STREAM_H
18 #define APT_TEXT_STREAM_H
31 #define APT_TOKEN_SP 0x20
33 #define APT_TOKEN_HTAB 0x09
35 #define APT_TOKEN_CR 0x0D
37 #define APT_TOKEN_LF 0x0A
124 stream->pos = stream->text.buf;
125 stream->end = stream->text.buf + stream->text.length;
126 stream->is_eos = FALSE;
130 static APR_INLINE
void apt_text_stream_init(
apt_text_stream_t *stream,
char *buffer, apr_size_t size)
134 apt_text_stream_reset(stream);
140 if(stream->
pos + 2 < stream->
end) {
151 if(stream->
pos + 1 < stream->
end) {
171 static APR_INLINE
apt_bool_t apt_text_is_wsp(
char ch)
186 while(stream->
pos < stream->
end && apt_text_is_wsp(*stream->
pos) == TRUE)
193 if(stream->
pos < stream->
end && *stream->
pos == ch) stream->
pos++;
199 while(stream->
pos < stream->
end && *stream->
pos == ch) stream->
pos++;
205 while(stream->
pos < stream->
end && *stream->
pos != ch) stream->
pos++;
211 return (stream->
pos >= stream->
end || stream->
is_eos == TRUE) ? TRUE : FALSE;
apr_array_header_t apt_pair_arr_t
Definition: apt_pair.h:42
Definition: apt_pair.h:34
Definition: apt_text_stream.h:43
apt_bool_t apt_id_resource_parse(const apt_str_t *str, char separator, apt_str_t *id, apt_str_t *resource, apr_pool_t *pool)
apr_size_t apt_size_value_parse(const apt_str_t *str)
#define APT_END_EXTERN_C
Definition: apt.h:38
apt_bool_t apt_id_resource_generate(const apt_str_t *id, const apt_str_t *resource, char separator, apt_str_t *str, apr_pool_t *pool)
#define APT_TOKEN_CR
Definition: apt_text_stream.h:35
int apt_bool_t
Definition: apt.h:57
apt_bool_t apt_text_string_insert(apt_text_stream_t *stream, const apt_str_t *str)
apt_bool_t apt_completion_cause_generate(const apt_str_table_item_t table[], apr_size_t size, apr_size_t cause, apt_str_t *str, apr_pool_t *pool)
apt_bool_t is_eos
Definition: apt_text_stream.h:52
apt_bool_t apt_text_field_read(apt_text_stream_t *stream, char separator, apt_bool_t skip_spaces, apt_str_t *field)
apt_bool_t apt_pair_array_generate(const apt_pair_arr_t *arr, apt_str_t *str, apr_pool_t *pool)
apt_bool_t apt_text_float_value_insert(apt_text_stream_t *stream, float value)
#define APT_TOKEN_LF
Definition: apt_text_stream.h:37
apt_bool_t apt_text_line_read(apt_text_stream_t *stream, apt_str_t *line)
apt_bool_t apt_text_header_read(apt_text_stream_t *stream, apt_pair_t *pair)
apr_size_t length
Definition: apt_string.h:40
#define APT_BEGIN_EXTERN_C
Definition: apt.h:36
#define APT_DECLARE(type)
Definition: apt.h:53
apt_bool_t apt_boolean_value_parse(const apt_str_t *str, apt_bool_t *value)
char * pos
Definition: apt_text_stream.h:48
apt_bool_t apt_pair_array_parse(apt_pair_arr_t *arr, const apt_str_t *value, apr_pool_t *pool)
apt_bool_t apt_text_size_value_insert(apt_text_stream_t *stream, apr_size_t value)
apt_bool_t apt_text_stream_scroll(apt_text_stream_t *stream)
apt_bool_t apt_var_length_value_generate(apr_size_t *value, apr_size_t max_count, apt_str_t *str)
apt_bool_t apt_unique_id_generate(apt_str_t *id, apr_size_t length, apr_pool_t *pool)
#define APT_TOKEN_HTAB
Definition: apt_text_stream.h:33
Definition: apt_string.h:36
#define APT_TOKEN_SP
Definition: apt_text_stream.h:31
apt_bool_t apt_size_value_generate(apr_size_t value, apt_str_t *str, apr_pool_t *pool)
apt_bool_t apt_boolean_value_generate(apt_bool_t value, apt_str_t *str, apr_pool_t *pool)
apt_str_t text
Definition: apt_text_stream.h:45
const char * end
Definition: apt_text_stream.h:50
apt_bool_t apt_text_header_name_insert(apt_text_stream_t *stream, const apt_str_t *name)
apt_bool_t apt_text_name_value_insert(apt_text_stream_t *stream, const apt_str_t *name, const apt_str_t *value)
float apt_float_value_parse(const apt_str_t *str)
apt_bool_t apt_float_value_generate(float value, apt_str_t *str, apr_pool_t *pool)
char * buf
Definition: apt_string.h:38
Definition: apt_string_table.h:34