@@ -66,6 +66,7 @@ struct SqshFileReader *
66
66
sqsh_file_reader_new (const struct SqshFile * file , int * err );
67
67
68
68
/**
69
+ * @deprecated Since 1.5.0. Use sqsh_file_reader_advance2() instead.
69
70
* @brief Advances the file reader by a certain amount of data and presents
70
71
* `size` bytes of data to the user.
71
72
* @memberof SqshFileReader
@@ -76,9 +77,25 @@ sqsh_file_reader_new(const struct SqshFile *file, int *err);
76
77
*
77
78
* @return 0 on success, less than 0 on error.
78
79
*/
79
- int sqsh_file_reader_advance (
80
+ __attribute__((deprecated (
81
+ "Since 1.5.0. Use sqsh_file_reader_advance2() instead." ))) int
82
+ sqsh_file_reader_advance (
80
83
struct SqshFileReader * reader , sqsh_index_t offset , size_t size );
81
84
85
+ /**
86
+ * @brief Advances the file reader by a certain amount of data and presents
87
+ * `size` bytes of data to the user.
88
+ * @memberof SqshFileReader
89
+ *
90
+ * @param[in,out] reader The file reader to skip data in.
91
+ * @param[in] offset The offset to skip.
92
+ * @param[in] size The size of the data to skip.
93
+ *
94
+ * @return 0 on success, less than 0 on error.
95
+ */
96
+ int sqsh_file_reader_advance2 (
97
+ struct SqshFileReader * reader , uint64_t offset , size_t size );
98
+
82
99
/**
83
100
* @brief Gets a pointer to the current data in the file reader.
84
101
* @memberof SqshFileReader
@@ -145,6 +162,7 @@ SQSH_NO_UNUSED bool sqsh_file_iterator_next(
145
162
struct SqshFileIterator * iterator , size_t desired_size , int * err );
146
163
147
164
/**
165
+ * @deprecated Since 1.5.0. Use sqsh_file_iterator_skip2() instead.
148
166
* @memberof SqshFileIterator
149
167
* @brief Skips blocks until the block containing the offset is reached.
150
168
* Note that calling this function will invalidate the data pointer returned by
@@ -177,10 +195,50 @@ SQSH_NO_UNUSED bool sqsh_file_iterator_next(
177
195
*
178
196
* @return 0 on success, less than 0 on error.
179
197
*/
180
- SQSH_NO_UNUSED int sqsh_file_iterator_skip (
198
+ __attribute__((
199
+ deprecated ("Since 1.5.0. Use sqsh_file_iterator_skip2() instead." )))
200
+ SQSH_NO_UNUSED int
201
+ sqsh_file_iterator_skip (
181
202
struct SqshFileIterator * iterator , sqsh_index_t * offset ,
182
203
size_t desired_size );
183
204
205
+ /**
206
+ * @memberof SqshFileIterator
207
+ * @brief Skips blocks until the block containing the offset is reached.
208
+ * Note that calling this function will invalidate the data pointer returned by
209
+ * sqsh_file_iterator_data().
210
+ *
211
+ * The offset is relative to the beginning of the current block or, if the
212
+ * iterator hasn't been forwarded with previous calls to
213
+ * sqsh_file_iterator_skip() or sqsh_file_iterator_next() the beginning of the
214
+ * first block.
215
+ *
216
+ * After calling this function `offset` is updated to the same position relative
217
+ * to the new block. See this visualisation:
218
+ *
219
+ * ```
220
+ * current_block: |<--- block 8000 --->|
221
+ * offset = 10000 --^
222
+ * --> sqsh_file_iterator_skip(i, &offset, 1)
223
+ * current_block: |<--- block 8000 --->|
224
+ * offset = 2000 --^
225
+ * ```
226
+ *
227
+ * If libsqsh can map more than one block at once, it will do so until
228
+ * `desired_size` is reached. Note that `desired_size` is only a hint and
229
+ * libsqsh may return more or less data than requested.
230
+ *
231
+ * @param[in,out] iterator The file iterator to skip data in.
232
+ * @param[in,out] offset The offset that is contained in the block to
233
+ * skip to.
234
+ * @param[in] desired_size The desired size of the data to read.
235
+ *
236
+ * @return 0 on success, less than 0 on error.
237
+ */
238
+ SQSH_NO_UNUSED int sqsh_file_iterator_skip2 (
239
+ struct SqshFileIterator * iterator , uint64_t * offset ,
240
+ size_t desired_size );
241
+
184
242
/**
185
243
* @brief Gets a pointer to the current data in the file iterator.
186
244
* @memberof SqshFileIterator
0 commit comments