| 484 | } |
| 485 | |
| 486 | void reset_reader(reader_t *const reader) { |
| 487 | /* rewind the reader back to beginning */ |
| 488 | long curr_offset = 0; |
| 489 | reader->n_read_req = 0; |
| 490 | |
| 491 | #ifdef SUPPORT_ZSTD_TRACE |
| 492 | if (reader->is_zstd_file) { |
| 493 | reset_zstd_reader(reader->zstd_reader_p); |
| 494 | if (reader->trace_start_offset > 0) { |
| 495 | read_bytes(reader, reader->trace_start_offset); |
| 496 | } |
| 497 | } |
| 498 | #endif |
| 499 | |
| 500 | if (reader->trace_type == PLAIN_TXT_TRACE) { |
| 501 | fseek(reader->file, 0, SEEK_SET); |
| 502 | curr_offset = ftell(reader->file); |
| 503 | } else if (reader->trace_type == CSV_TRACE) { |
| 504 | csv_reset_reader(reader); |
| 505 | curr_offset = ftell(reader->file); |
| 506 | } else { |
| 507 | reader->mmap_offset = reader->trace_start_offset; |
| 508 | curr_offset = reader->mmap_offset; |
| 509 | } |
| 510 | |
| 511 | DEBUG("reset reader current offset %ld\n", curr_offset); |
| 512 | } |
| 513 | |
| 514 | int64_t get_num_of_req(reader_t *const reader) { |
| 515 | if (reader->n_total_req > 0) return reader->n_total_req; |