Lines Matching refs:stream
34 SEQ_stream stream; in SEQ_initStream() local
35 stream.state = 0; in SEQ_initStream()
36 XXH64_reset(&stream.xxh, 0); in SEQ_initStream()
37 stream.seed = seed; in SEQ_initStream()
38 return stream; in SEQ_initStream()
44 static size_t SEQ_gen_matchLength(SEQ_stream* stream, unsigned value, in SEQ_gen_matchLength() argument
56 switch ((ml_state)stream->state) { in SEQ_gen_matchLength()
60 stream->bytesLeft = 1; in SEQ_gen_matchLength()
63 *op = SEQ_randByte(&stream->seed) & 0xFF; in SEQ_gen_matchLength()
65 stream->saved = SEQ_randByte(&stream->seed) & 0xFF; in SEQ_gen_matchLength()
66 } while (*op == stream->saved); in SEQ_gen_matchLength()
69 stream->state = ml_match_bytes; in SEQ_gen_matchLength()
70 stream->bytesLeft = value + 1; in SEQ_gen_matchLength()
74 size_t const setLength = MIN(stream->bytesLeft, (size_t)(oend - op)); in SEQ_gen_matchLength()
76 memset(op, stream->saved, setLength); in SEQ_gen_matchLength()
78 stream->bytesLeft -= setLength; in SEQ_gen_matchLength()
80 if (stream->bytesLeft > 0) in SEQ_gen_matchLength()
83 stream->state = ml_last_byte; in SEQ_gen_matchLength()
89 stream->bytesLeft = 1; in SEQ_gen_matchLength()
93 *op = SEQ_randByte(&stream->seed) & 0xFF; in SEQ_gen_matchLength()
94 } while (*op == stream->saved); in SEQ_gen_matchLength()
99 stream->state = 0; in SEQ_gen_matchLength()
100 stream->bytesLeft = 0; in SEQ_gen_matchLength()
103 XXH64_update(&stream->xxh, ostart + out->pos, (op - ostart) - out->pos); in SEQ_gen_matchLength()
105 return stream->bytesLeft; in SEQ_gen_matchLength()
113 static size_t SEQ_gen_litLength(SEQ_stream* stream, unsigned value, SEQ_outBuffer* out) in SEQ_gen_litLength() argument
125 switch ((ll_state)stream->state) { in SEQ_gen_litLength()
127 stream->state = ll_run_bytes; in SEQ_gen_litLength()
128 stream->saved = stream->seed; in SEQ_gen_litLength()
129 stream->bytesLeft = MIN(kMatchBytes, value); in SEQ_gen_litLength()
132 while (stream->bytesLeft > 0 && op < oend) { in SEQ_gen_litLength()
133 *op++ = SEQ_randByte(&stream->seed) | 0x80; in SEQ_gen_litLength()
134 --stream->bytesLeft; in SEQ_gen_litLength()
136 if (stream->bytesLeft > 0) in SEQ_gen_litLength()
139 stream->state = ll_literals; in SEQ_gen_litLength()
140 stream->bytesLeft = value - MIN(kMatchBytes, value); in SEQ_gen_litLength()
143 while (stream->bytesLeft > 0 && op < oend) { in SEQ_gen_litLength()
144 *op++ = SEQ_randByte(&stream->seed) & 0x7F; in SEQ_gen_litLength()
145 --stream->bytesLeft; in SEQ_gen_litLength()
147 if (stream->bytesLeft > 0) in SEQ_gen_litLength()
150 stream->state = ll_run_match; in SEQ_gen_litLength()
151 stream->bytesLeft = MIN(kMatchBytes, value); in SEQ_gen_litLength()
154 while (stream->bytesLeft > 0 && op < oend) { in SEQ_gen_litLength()
155 *op++ = SEQ_randByte(&stream->saved) | 0x80; in SEQ_gen_litLength()
156 --stream->bytesLeft; in SEQ_gen_litLength()
158 if (stream->bytesLeft > 0) in SEQ_gen_litLength()
163 stream->state = 0; in SEQ_gen_litLength()
164 stream->bytesLeft = 0; in SEQ_gen_litLength()
167 XXH64_update(&stream->xxh, ostart + out->pos, (op - ostart) - out->pos); in SEQ_gen_litLength()
169 return stream->bytesLeft; in SEQ_gen_litLength()
178 static size_t SEQ_gen_offset(SEQ_stream* stream, unsigned value, SEQ_outBuffer* out) in SEQ_gen_offset() argument
190 switch ((of_state)stream->state) { in SEQ_gen_offset()
192 stream->state = of_run_bytes; in SEQ_gen_offset()
193 stream->saved = stream->seed; in SEQ_gen_offset()
194 stream->bytesLeft = MIN(value, kMatchBytes); in SEQ_gen_offset()
197 while (stream->bytesLeft > 0 && op < oend) { in SEQ_gen_offset()
198 *op++ = SEQ_randByte(&stream->seed) | 0x80; in SEQ_gen_offset()
199 --stream->bytesLeft; in SEQ_gen_offset()
201 if (stream->bytesLeft > 0) in SEQ_gen_offset()
204 stream->state = of_offset; in SEQ_gen_offset()
205 stream->bytesLeft = value - MIN(value, kMatchBytes); in SEQ_gen_offset()
210 size_t const setLength = MIN(stream->bytesLeft, (size_t)(oend - op)); in SEQ_gen_offset()
214 stream->bytesLeft -= setLength; in SEQ_gen_offset()
216 if (stream->bytesLeft > 0) in SEQ_gen_offset()
219 stream->state = of_run_match; in SEQ_gen_offset()
220 stream->bytesLeft = MIN(value, kMatchBytes); in SEQ_gen_offset()
224 while (stream->bytesLeft > 0 && op < oend) { in SEQ_gen_offset()
225 *op++ = SEQ_randByte(&stream->saved) | 0x80; in SEQ_gen_offset()
226 --stream->bytesLeft; in SEQ_gen_offset()
228 if (stream->bytesLeft > 0) in SEQ_gen_offset()
233 stream->state = 0; in SEQ_gen_offset()
234 stream->bytesLeft = 0; in SEQ_gen_offset()
237 XXH64_update(&stream->xxh, ostart + out->pos, (op - ostart) - out->pos); in SEQ_gen_offset()
239 return stream->bytesLeft; in SEQ_gen_offset()
245 size_t SEQ_gen(SEQ_stream* stream, SEQ_gen_type type, unsigned value, SEQ_outBuffer* out) in SEQ_gen() argument
248 case SEQ_gen_ml: return SEQ_gen_matchLength(stream, value, out); in SEQ_gen()
249 case SEQ_gen_ll: return SEQ_gen_litLength(stream, value, out); in SEQ_gen()
250 case SEQ_gen_of: return SEQ_gen_offset(stream, value, out); in SEQ_gen()
257 XXH64_hash_t SEQ_digest(SEQ_stream const* stream) in SEQ_digest() argument
259 return XXH64_digest(&stream->xxh); in SEQ_digest()