#include <ICP.h>
Inherits Continuation.
Data Structures | |
class | PeerReadData |
Public Types | |
enum | PeerReadState_t { READ_ACTIVE, READ_DATA, READ_DATA_DONE, PROCESS_READ_DATA, ADD_PEER, AWAITING_CACHE_LOOKUP_RESPONSE, SEND_REPLY, WRITE_DONE, GET_ICP_REQUEST, GET_ICP_REQUEST_MUTEX, READ_NOT_ACTIVE, READ_NOT_ACTIVE_EXIT, READ_PROCESSING_COMPLETE } |
enum | { RETRY_INTERVAL = 10 } |
Public Member Functions | |
ICPPeerReadCont () | |
void | init (ICPProcessor *, Peer *, int) |
~ICPPeerReadCont () | |
void | reset (int full_reset=0) |
int | ICPPeerReadEvent (int, Event *) |
int | ICPPeerQueryCont (int, Event *) |
int | ICPPeerQueryEvent (int, Event *) |
int | StaleCheck (int, Event *) |
int | PeerReadStateMachine (PeerReadData *, Event *) |
Data Fields | |
CacheVConnection * | _object_vc |
HTTPInfo * | _object_read |
HdrHeapSDKHandle * | _cache_req_hdr_heap_handle |
HdrHeapSDKHandle * | _cache_resp_hdr_heap_handle |
Definition at line 1045 of file ICP.h.
int ICPPeerReadCont::ICPPeerQueryCont | ( | int | , | |
Event * | ||||
) |
Definition at line 457 of file ICP.cc.
References ICPPeerReadCont::PeerReadData::_cache_lookup_local, ICPPeerReadCont::PeerReadData::_cachelookupURL, ICPPeerReadCont::PeerReadData::_queryResult, ICPPeerReadCont::PeerReadData::_rICPmsg, ICPPeerReadCont::PeerReadData::_sender, a, ACTION_IO_ERROR, ACTION_RESULT_DONE, ats_ip_nptop(), CACHE_EVENT_LOOKUP_FAILED, cacheProcessor, URL::create(), Debug, ICPProcessor::GetConfig(), ICPConfiguration::globalConfig(), ICPMsg::h, Continuation::handleEvent(), ICPPeerQueryEvent(), ICPConfigData::ICPStaleLookup(), ink_get_hrtime(), CacheProcessor::lookup(), MAX_ICP_MSGSIZE, CacheProcessor::open_read(), URL::parse(), pluginFreshnessCalcFunc, ICPMsg::query, ICPMsgHeader::requestno, SET_HANDLER, ICPMsg::un, and ICPQuery::URL.
Referenced by PeerReadStateMachine().
int ICPPeerReadCont::ICPPeerQueryEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 424 of file ICP.cc.
References _object_read, _object_vc, ICPPeerReadCont::PeerReadData::_queryResult, ICPPeerReadCont::PeerReadData::_rICPmsg, ICPPeerReadCont::PeerReadData::_sender, ats_ip_nptop(), CACHE_EVENT_OPEN_READ, CACHE_EVENT_OPEN_READ_FAILED, Debug, ICPMsg::h, Continuation::handleEvent(), ICPPeerReadEvent(), pluginFreshnessCalcFunc, ICPMsg::query, ICPMsgHeader::requestno, SET_HANDLER, StaleCheck(), ICPMsg::un, and ICPQuery::URL.
Referenced by ICPPeerQueryCont().
int ICPPeerReadCont::ICPPeerReadEvent | ( | int | event, | |
Event * | e | |||
) |
Definition at line 338 of file ICP.cc.
References ICPPeerReadCont::PeerReadData::_next_state, ICPPeerReadCont::PeerReadData::_peer, AWAITING_CACHE_LOOKUP_RESPONSE, CACHE_EVENT_LOOKUP, CACHE_EVENT_LOOKUP_FAILED, ET_ICP, EVENT_CONT, EVENT_IMMEDIATE, EVENT_INTERVAL, eventProcessor, completionUtil::getHandle(), ICPPeerReadContAllocator, ink_assert, ink_release_assert, NET_EVENT_DATAGRAM_READ_COMPLETE, NET_EVENT_DATAGRAM_READ_ERROR, NET_EVENT_DATAGRAM_WRITE_COMPLETE, NET_EVENT_DATAGRAM_WRITE_ERROR, PeerReadStateMachine(), READ_DATA_DONE, READ_PROCESSING_COMPLETE, reset(), RETRY_INTERVAL, EventProcessor::schedule_in(), and WRITE_DONE.
Referenced by ICPPeerQueryEvent(), init(), and StaleCheck().
void ICPPeerReadCont::init | ( | ICPProcessor * | ICPpr, | |
Peer * | p, | |||
int | lookup_local | |||
) |
Definition at line 295 of file ICP.cc.
References ICPPeerReadCont::PeerReadData::_cache_lookup_local, _cache_req_hdr_heap_handle, _cache_resp_hdr_heap_handle, ICPPeerReadCont::PeerReadData::_next_state, _object_read, _object_vc, ICPPeerReadCont::PeerReadData::_peer, ICPPeerReadCont::PeerReadData::_start_time, ICPPeerReadEvent(), ICPPeerReadCont::PeerReadData::init(), ink_get_hrtime(), Continuation::mutex, new_ProxyMutex(), PeerReadDataAllocator, and SET_HANDLER.
Referenced by ICPHandlerCont::PeriodicEvent().
int ICPPeerReadCont::PeerReadStateMachine | ( | PeerReadData * | s, | |
Event * | e | |||
) |
Definition at line 521 of file ICP.cc.
References ICPPeerReadCont::PeerReadData::_buf, ICPPeerReadCont::PeerReadData::_bytesReceived, ICPPeerReadCont::PeerReadData::_ICPReqCont, ICPPeerReadCont::PeerReadData::_iov, ICPPeerReadCont::PeerReadData::_mhdr, ICPPeerReadCont::PeerReadData::_mycont, ICPPeerReadCont::PeerReadData::_next_state, ICPPeerReadCont::PeerReadData::_peer, ICPPeerReadCont::PeerReadData::_queryResult, ICPPeerReadCont::PeerReadData::_rICPmsg, ICPPeerReadCont::PeerReadData::_rICPmsg_len, ICPPeerReadCont::PeerReadData::_sender, ICPPeerReadCont::PeerReadData::_start_time, a, Log::access(), ACTION_IO_ERROR, ACTION_RESULT_DONE, ADD_PEER, ats_ip_nptop(), ats_ip_ntop(), ats_ip_port_cast(), AWAITING_CACHE_LOOKUP_RESPONSE, ICPRequestCont::BuildICPMsg(), CACHE_EVENT_LOOKUP, CACHE_EVENT_LOOKUP_FAILED, Action::cancelled, PeerConfigData::CTYPE_SIBLING, Debug, EVENT_CONT, EVENT_DONE, ICPRequestCont::FindICPRequest(), ICPProcessor::FindPeer(), GET_ICP_REQUEST, GET_ICP_REQUEST_MUTEX, ICPRequestCont::GetActionPtr(), completionUtil::getBytesTransferred(), ParentSiblingPeer::GetChan(), ICPProcessor::GetConfig(), ICPProcessor::GetFreePeers(), ICPProcessor::GetFreeSendPeers(), ParentSiblingPeer::GetIP(), ICPRequestCont::GetRequestStartTime(), ICPConfiguration::globalConfig(), ICPMsg::h, Continuation::handleEvent(), icp_cache_lookup_fail_stat, icp_cache_lookup_success_stat, ICP_INCREMENT_DYN_STAT, ICP_OP_HIT, ICP_OP_MISS, ICP_OP_QUERY, icp_remote_query_requests_stat, icp_remote_responses_stat, ICP_RESPONSE_MESSAGE, icp_response_request_nolock_stat, ICP_SUM_DYN_STAT, ICP_VERSION_2, ICP_VERSION_3, ICPConfigData::ICPconfigured(), ICPHandlerCont::ICPDataBuf_IOBuffer_sizeindex, ICPConfigData::ICPDefaultReplyPort(), ICPPeerQueryCont(), ICPConfigData::ICPReplyToUnknownPeer(), ICPProcessor::IdToPeer(), ink_assert, ink_get_hrtime(), ink_release_assert, invalid_sender_stat, ICPConfiguration::Lock(), Peer::LogRecvMsg(), ICPMsgHeader::msglen, Continuation::mutex, MUTEX_TAKE_TRY_LOCK, MUTEX_TRY_LOCK, MUTEX_UNTAKE_LOCK, ICPRequestCont::NetToHostICPMsg(), new_IOBufferBlock, no_data_read_stat, no_icp_request_for_response_stat, Note, ICPMsgHeader::opcode, ICPRequestCont::ICPRequestEventArgs::peer, PEER_SIBLING, PROCESS_READ_DATA, ICPMsg::query, query_response_partial_write_stat, query_response_write_stat, READ_ACTIVE, READ_DATA, READ_DATA_DONE, READ_NOT_ACTIVE, READ_NOT_ACTIVE_EXIT, read_not_v2_icp_stat, READ_PROCESSING_COMPLETE, REC_SIGNAL_CONFIG_ERROR, RECORD_ICP_STATE_CHANGE, RecSignalWarning(), ICPMsgHeader::requestno, ICPPeerReadCont::PeerReadData::reset(), ICPRequestCont::ICPRequestEventArgs::rICPmsg, ICPRequestCont::ICPRequestEventArgs::rICPmsg_len, IpEndpoint::sa, SEND_REPLY, Connection::setRemote(), short_read_stat, this_ethread(), total_icp_response_time_stat, ICPMsg::un, ICPConfiguration::Unlock(), ICPQuery::URL, ICPMsgHeader::version, Warning, and WRITE_DONE.
Referenced by ICPPeerReadEvent().
void ICPPeerReadCont::reset | ( | int | full_reset = 0 |
) |
Definition at line 320 of file ICP.cc.
References _cache_req_hdr_heap_handle, _cache_resp_hdr_heap_handle, ats_free(), Continuation::mutex, PeerReadDataAllocator, and ICPPeerReadCont::PeerReadData::reset().
Referenced by ICPPeerReadEvent(), and ~ICPPeerReadCont().
int ICPPeerReadCont::StaleCheck | ( | int | event, | |
Event * | ||||
) |
Definition at line 389 of file ICP.cc.
References _object_vc, ICPPeerReadCont::PeerReadData::_queryResult, ICPPeerReadCont::PeerReadData::_rICPmsg, ICPPeerReadCont::PeerReadData::_sender, ats_ip_nptop(), VIO::CLOSE, Debug, VConnection::do_io(), ICPMsg::h, Continuation::handleEvent(), ICP_FRESH_OBJECT, ICP_STALE_OBJECT, ICPPeerReadEvent(), ink_release_assert, Continuation::mutex, ICPMsg::query, ICPMsgHeader::requestno, SET_HANDLER, this_ethread(), ICPMsg::un, and ICPQuery::URL.
Referenced by ICPPeerQueryEvent().
Definition at line 1107 of file ICP.h.
Referenced by init(), reset(), and TSICPCachedReqGet().
Definition at line 1108 of file ICP.h.
Referenced by init(), reset(), and TSICPCachedRespGet().
Definition at line 1106 of file ICP.h.
Referenced by ICPPeerQueryEvent(), init(), TSICPCachedReqGet(), and TSICPCachedRespGet().
Definition at line 1105 of file ICP.h.
Referenced by ICPPeerQueryEvent(), init(), and StaleCheck().