Lines Matching defs:str
37 stream_array_prime(stream_t *str)
39 ASSERT((str->s_status & STREAM_SOURCE_MASK) == STREAM_ARRAY);
41 str->s_type.LA.s_cur_index = MIN(0, str->s_type.LA.s_array_size - 1);
42 if (str->s_type.LA.s_cur_index >= 0)
44 str->s_type.LA.s_array[str->s_type.LA.s_cur_index],
45 &str->s_current);
47 stream_set(str, STREAM_EOS_REACHED);
48 stream_unset(str, STREAM_PRIMED);
52 stream_set(str, STREAM_PRIMED);
58 stream_array_fetch(stream_t *str)
60 ASSERT(str->s_status & STREAM_OPEN);
61 ASSERT(str->s_type.LA.s_cur_index < str->s_type.LA.s_array_size);
63 if (++str->s_type.LA.s_cur_index == str->s_type.LA.s_array_size - 1)
64 stream_set(str, STREAM_EOS_REACHED);
66 copy_line_rec(str->s_type.LA.s_array[str->s_type.LA.s_cur_index],
67 &str->s_current);
74 stream_array_is_closable(stream_t *str)
84 stream_array_close(stream_t *str)
86 stream_unset(str, STREAM_OPEN | STREAM_PRIMED);
92 stream_array_free(stream_t *str)
98 stream_unset(str, STREAM_PRIMED | STREAM_NOT_FREEABLE);
104 stream_array_eos(stream_t *str)
108 if (str == NULL || str->s_status & STREAM_EOS_REACHED)
111 if (str->s_type.LA.s_cur_index + 1 >= str->s_type.LA.s_array_size) {
113 stream_set(str, STREAM_EOS_REACHED);
121 stream_array_release_line(stream_t *str)