| 28 | Http3DataFramer::Http3DataFramer(Http3Transaction *transaction, VIO *source) : _transaction(transaction), _source_vio(source) {} |
| 29 | |
| 30 | Http3FrameUPtr |
| 31 | Http3DataFramer::generate_frame() |
| 32 | { |
| 33 | if (!this->_transaction->is_response_header_sent()) { |
| 34 | return Http3FrameFactory::create_null_frame(); |
| 35 | } |
| 36 | |
| 37 | Http3FrameUPtr frame = Http3FrameFactory::create_null_frame(); |
| 38 | IOBufferReader *reader = this->_source_vio->get_reader(); |
| 39 | |
| 40 | size_t payload_len = 128 * 1024; |
| 41 | if (!reader->is_read_avail_more_than(payload_len)) { |
| 42 | payload_len = reader->read_avail(); |
| 43 | } |
| 44 | |
| 45 | if (payload_len) { |
| 46 | frame = Http3FrameFactory::create_data_frame(reader, payload_len); |
| 47 | this->_source_vio->ndone += payload_len; |
| 48 | } |
| 49 | |
| 50 | return frame; |
| 51 | } |
| 52 | |
| 53 | bool |
| 54 | Http3DataFramer::is_done() const |
no test coverage detected