| 544 | } |
| 545 | |
| 546 | const char * |
| 547 | TSIOBufferBlockReadStart(TSIOBufferBlock blockp, TSIOBufferReader readerp, int64_t *avail) |
| 548 | { |
| 549 | sdk_assert(sdk_sanity_check_iocore_structure(blockp) == TS_SUCCESS); |
| 550 | sdk_assert(sdk_sanity_check_iocore_structure(readerp) == TS_SUCCESS); |
| 551 | |
| 552 | IOBufferBlock *blk = (IOBufferBlock *)blockp; |
| 553 | IOBufferReader *reader = (IOBufferReader *)readerp; |
| 554 | char *p; |
| 555 | |
| 556 | p = blk->start(); |
| 557 | if (avail) { |
| 558 | *avail = blk->read_avail(); |
| 559 | } |
| 560 | |
| 561 | if (reader->block.get() == blk) { |
| 562 | p += reader->start_offset; |
| 563 | if (avail) { |
| 564 | *avail -= reader->start_offset; |
| 565 | if (*avail < 0) { |
| 566 | *avail = 0; |
| 567 | } |
| 568 | } |
| 569 | } |
| 570 | |
| 571 | return (const char *)p; |
| 572 | } |
| 573 | |
| 574 | int64_t |
| 575 | TSIOBufferBlockReadAvail(TSIOBufferBlock blockp, TSIOBufferReader readerp) |