gmio_core/internal: embed gmio_stream inside gmio_stringstream

This commit is contained in:
Hugues Delorme 2015-11-23 16:44:45 +01:00
parent 5e32375553
commit f686f35207
3 changed files with 8 additions and 10 deletions

View File

@ -28,7 +28,7 @@
*/ */
struct gmio_stringstream struct gmio_stringstream
{ {
gmio_stream_t* stream; gmio_stream_t stream;
gmio_string_t strbuff; gmio_string_t strbuff;
const char* strbuff_end; /*!< Position after last char in strbuff */ const char* strbuff_end; /*!< Position after last char in strbuff */
const char* strbuff_at; /*!< Position indicator in buffer */ const char* strbuff_at; /*!< Position indicator in buffer */
@ -134,8 +134,9 @@ const char *gmio_stringstream_next_char(gmio_stringstream_t *it)
/* Read next chunk of data */ /* Read next chunk of data */
it->strbuff_at = it->strbuff.ptr; it->strbuff_at = it->strbuff.ptr;
it->strbuff.len = gmio_stream_read( it->strbuff.len =
it->stream, it->strbuff.ptr, sizeof(char), it->strbuff.max_len); gmio_stream_read(
&it->stream, it->strbuff.ptr, 1, it->strbuff.max_len);
it->strbuff_end = it->strbuff.ptr + it->strbuff.len; it->strbuff_end = it->strbuff.ptr + it->strbuff.len;
if (it->strbuff.len > 0) { if (it->strbuff.len > 0) {
if (it->func_stream_read_hook != NULL) if (it->func_stream_read_hook != NULL)

View File

@ -163,7 +163,7 @@ int gmio_stla_read(gmio_transfer_t* trsf, gmio_stl_mesh_creator_t* creator)
gmio_stream_size(&trsf->stream); gmio_stream_size(&trsf->stream);
parse_data.stream_iterator_cookie.is_stop_requested = GMIO_FALSE; parse_data.stream_iterator_cookie.is_stop_requested = GMIO_FALSE;
parse_data.stream_iterator.stream = &trsf->stream; parse_data.stream_iterator.stream = trsf->stream;
parse_data.stream_iterator.strbuff.ptr = trsf->memblock.ptr; parse_data.stream_iterator.strbuff.ptr = trsf->memblock.ptr;
parse_data.stream_iterator.strbuff.max_len = trsf->memblock.size; parse_data.stream_iterator.strbuff.max_len = trsf->memblock.size;
parse_data.stream_iterator.cookie = &parse_data.stream_iterator_cookie; parse_data.stream_iterator.cookie = &parse_data.stream_iterator_cookie;

View File

@ -136,10 +136,9 @@ const char* test_internal__gmio_fast_atof()
&test_internal__gmio_fast_atof__fstr[0], &test_internal__gmio_fast_atof__fstr[0],
sizeof(test_internal__gmio_fast_atof__fstr) - 1, sizeof(test_internal__gmio_fast_atof__fstr) - 1,
0 }; 0 };
gmio_stream_t stream = gmio_istream_buffer(&streambuff);
float f2; float f2;
it.stream = &stream; it.stream = gmio_istream_buffer(&streambuff);
it.strbuff.ptr = &strbuff[0]; it.strbuff.ptr = &strbuff[0];
it.strbuff.max_len = sizeof(strbuff) - 1; it.strbuff.max_len = sizeof(strbuff) - 1;
gmio_stringstream_init(&it); gmio_stringstream_init(&it);
@ -187,7 +186,6 @@ const char* test_internal__stringstream()
&test_internal__stringstream__text[0], &test_internal__stringstream__text[0],
sizeof(test_internal__stringstream__text) - 1, sizeof(test_internal__stringstream__text) - 1,
0 }; 0 };
gmio_stream_t stream = gmio_istream_buffer(&buff);
char small_fwd_it_str[4]; char small_fwd_it_str[4];
char fwd_it_str[32]; char fwd_it_str[32];
@ -196,7 +194,7 @@ const char* test_internal__stringstream()
char copy_str[128]; char copy_str[128];
gmio_string_t copy_strbuff; gmio_string_t copy_strbuff;
fwd_it.stream = &stream; fwd_it.stream = gmio_istream_buffer(&buff);
fwd_it.strbuff.ptr = fwd_it_str; fwd_it.strbuff.ptr = fwd_it_str;
fwd_it.strbuff.max_len = sizeof(fwd_it_str); fwd_it.strbuff.max_len = sizeof(fwd_it_str);
gmio_stringstream_init(&fwd_it); gmio_stringstream_init(&fwd_it);
@ -247,7 +245,6 @@ const char* test_internal__stringstream()
&test_internal__stringstream__text[0], &test_internal__stringstream__text[0],
sizeof(test_internal__stringstream__text) - 1, sizeof(test_internal__stringstream__text) - 1,
0 }; 0 };
gmio_stream_t stream = gmio_istream_buffer(&buff);
char fwd_it_str[32]; char fwd_it_str[32];
gmio_stringstream_t fwd_it = {0}; gmio_stringstream_t fwd_it = {0};
@ -255,7 +252,7 @@ const char* test_internal__stringstream()
char copy_str[128]; char copy_str[128];
gmio_string_t copy_strbuff; gmio_string_t copy_strbuff;
fwd_it.stream = &stream; fwd_it.stream = gmio_istream_buffer(&buff);
fwd_it.strbuff.ptr = fwd_it_str; fwd_it.strbuff.ptr = fwd_it_str;
fwd_it.strbuff.max_len = sizeof(fwd_it_str); fwd_it.strbuff.max_len = sizeof(fwd_it_str);
gmio_stringstream_init(&fwd_it); gmio_stringstream_init(&fwd_it);