#include <TransformInternal.h>
Inherits INKVConnInternal.
Public Member Functions | |
RangeTransform (ProxyMutex *mutex, RangeRecord *ranges, int num_fields, HTTPHdr *transform_resp, const char *content_type, int content_type_len, int64_t content_length) | |
~RangeTransform () | |
int | handle_event (int event, void *edata) |
void | transform_to_range () |
void | add_boundary (bool end) |
void | add_sub_header (int index) |
void | change_response_header () |
void | calculate_output_cl () |
Data Fields | |
MIOBuffer * | m_output_buf |
IOBufferReader * | m_output_reader |
HTTPHdr * | m_transform_resp |
VIO * | m_output_vio |
int64_t | m_range_content_length |
int | m_num_chars_for_cl |
int | m_num_range_fields |
int | m_current_range |
const char * | m_content_type |
int | m_content_type_len |
RangeRecord * | m_ranges |
int64_t | m_output_cl |
int64_t | m_done |
Definition at line 120 of file TransformInternal.h.
RangeTransform::RangeTransform | ( | ProxyMutex * | mutex, | |
RangeRecord * | ranges, | |||
int | num_fields, | |||
HTTPHdr * | transform_resp, | |||
const char * | content_type, | |||
int | content_type_len, | |||
int64_t | content_length | |||
) |
Definition at line 741 of file Transform.cc.
References Debug, handle_event(), m_num_chars_for_cl, m_range_content_length, num_chars_for_int(), and SET_HANDLER.
RangeTransform::~RangeTransform | ( | ) |
Definition at line 761 of file Transform.cc.
References free_MIOBuffer(), and m_output_buf.
void RangeTransform::add_boundary | ( | bool | end | ) |
Definition at line 950 of file Transform.cc.
References bound, m_done, m_output_buf, and MIOBuffer::write().
Referenced by handle_event(), and transform_to_range().
void RangeTransform::add_sub_header | ( | int | index | ) |
Definition at line 968 of file Transform.cc.
References cont_range, cont_type, m_content_type, m_content_type_len, m_done, m_output_buf, m_output_cl, m_ranges, RANGE_NUMBERS_LENGTH, and MIOBuffer::write().
Referenced by handle_event(), and transform_to_range().
void RangeTransform::calculate_output_cl | ( | ) |
void RangeTransform::change_response_header | ( | ) |
Definition at line 996 of file Transform.cc.
References MIMEHdr::field_attach(), MIMEHdr::field_create(), MIMEHdr::field_delete(), MIMEHdr::field_find(), http_hdr_reason_lookup(), ink_release_assert, HdrHeapSDKHandle::m_heap, MIMEHdr::m_mime, m_num_range_fields, m_output_cl, m_ranges, m_transform_resp, MIME_FIELD_CONTENT_RANGE, MIME_FIELD_CONTENT_TYPE, MIME_LEN_CONTENT_RANGE, MIME_LEN_CONTENT_TYPE, range_type, HTTPHdr::reason_set(), HTTPHdr::status_set(), MIMEField::value_append(), and MIMEField::value_set().
Referenced by handle_event().
int RangeTransform::handle_event | ( | int | event, | |
void * | edata | |||
) |
Reimplemented from INKVConnInternal.
Definition at line 772 of file Transform.cc.
References VIO::_cont, add_boundary(), add_sub_header(), MIOBuffer::alloc_reader(), change_response_header(), Debug, VConnection::do_io_shutdown(), VConnection::do_io_write(), INKContInternal::handle_event_count(), Continuation::handleEvent(), ink_assert, IO_SHUTDOWN_WRITE, INKContInternal::m_closed, m_current_range, INKContInternal::m_deletable, m_done, m_num_range_fields, m_output_buf, m_output_cl, m_output_reader, INKVConnInternal::m_output_vc, m_output_vio, INKVConnInternal::m_write_vio, VIO::mutex, MUTEX_TRY_LOCK, VIO::nbytes, VIO::ndone, new_empty_MIOBuffer, VIO::NONE, VIO::op, VIO::reenable(), INKVConnInternal::retry(), this_ethread(), transform_to_range(), VC_EVENT_ERROR, VC_EVENT_WRITE_COMPLETE, and VC_EVENT_WRITE_READY.
Referenced by RangeTransform().
void RangeTransform::transform_to_range | ( | ) |
Definition at line 836 of file Transform.cc.
References VIO::_cont, _RangeRecord::_done_byte, _RangeRecord::_end, _RangeRecord::_start, add_boundary(), add_sub_header(), IOBufferReader::consume(), Debug, VIO::get_reader(), Continuation::handleEvent(), m_current_range, m_done, m_num_range_fields, m_output_buf, m_output_vio, m_ranges, INKVConnInternal::m_write_vio, VIO::nbytes, VIO::ntodo(), IOBufferReader::read_avail(), VIO::reenable(), start, VC_EVENT_EOS, VC_EVENT_WRITE_COMPLETE, VC_EVENT_WRITE_READY, and MIOBuffer::write().
Referenced by handle_event().
const char* RangeTransform::m_content_type |
Definition at line 147 of file TransformInternal.h.
Referenced by add_sub_header().
Definition at line 148 of file TransformInternal.h.
Referenced by add_sub_header().
Definition at line 146 of file TransformInternal.h.
Referenced by handle_event(), and transform_to_range().
int64_t RangeTransform::m_done |
Definition at line 151 of file TransformInternal.h.
Referenced by add_boundary(), add_sub_header(), handle_event(), and transform_to_range().
Definition at line 144 of file TransformInternal.h.
Referenced by RangeTransform().
Definition at line 145 of file TransformInternal.h.
Referenced by change_response_header(), handle_event(), and transform_to_range().
Definition at line 136 of file TransformInternal.h.
Referenced by add_boundary(), add_sub_header(), handle_event(), transform_to_range(), and ~RangeTransform().
int64_t RangeTransform::m_output_cl |
Definition at line 150 of file TransformInternal.h.
Referenced by add_sub_header(), change_response_header(), and handle_event().
Definition at line 137 of file TransformInternal.h.
Referenced by handle_event().
Definition at line 142 of file TransformInternal.h.
Referenced by handle_event(), and transform_to_range().
Definition at line 143 of file TransformInternal.h.
Referenced by RangeTransform().
Definition at line 149 of file TransformInternal.h.
Referenced by add_sub_header(), change_response_header(), and transform_to_range().
Definition at line 141 of file TransformInternal.h.
Referenced by change_response_header().