A brief file description. More...
#include "P_Net.h"
Go to the source code of this file.
A brief file description.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Definition in file UnixNetVConnection.cc.
#define disable_read | ( | _vc | ) | (_vc)->read.enabled = 0 |
Definition at line 29 of file UnixNetVConnection.cc.
Referenced by UnixNetVConnection::do_io_close(), UnixNetVConnection::do_io_read(), and UnixNetVConnection::do_io_shutdown().
#define disable_write | ( | _vc | ) | (_vc)->write.enabled = 0 |
Definition at line 30 of file UnixNetVConnection.cc.
Referenced by UnixNetVConnection::do_io_close(), UnixNetVConnection::do_io_shutdown(), and UnixNetVConnection::do_io_write().
#define enable_read | ( | _vc | ) | (_vc)->read.enabled = 1 |
Definition at line 31 of file UnixNetVConnection.cc.
#define enable_write | ( | _vc | ) | (_vc)->write.enabled = 1 |
Definition at line 32 of file UnixNetVConnection.cc.
#define NET_MAX_IOV 16 |
Definition at line 35 of file UnixNetVConnection.cc.
Referenced by UnixNetVConnection::load_buffer_and_write(), and read_from_net().
#define STATE_FROM_VIO | ( | _x | ) | ((NetState*)(((char*)(_x)) - STATE_VIO_OFFSET)) |
Definition at line 27 of file UnixNetVConnection.cc.
Referenced by UnixNetVConnection::reenable(), and UnixNetVConnection::set_enabled().
#define STATE_VIO_OFFSET ((uintptr_t)&((NetState*)0)->vio) |
Definition at line 26 of file UnixNetVConnection.cc.
void close_UnixNetVConnection | ( | UnixNetVConnection * | vc, | |
EThread * | t | |||
) |
Definition at line 95 of file UnixNetVConnection.cc.
References UnixNetVConnection::active_timeout, UnixNetVConnection::active_timeout_in, Action::cancel_action(), UnixNetVConnection::cancel_OOB(), Connection::close(), UnixNetVConnection::con, UnixNetVConnection::ep, UnixNetVConnection::free(), NetState::in_enabled_list, UnixNetVConnection::inactivity_timeout_in, UnixNetVConnection::next_inactivity_timeout_at, UnixNetVConnection::nh, UnixNetVConnection::read, EventIO::stop(), and UnixNetVConnection::write.
Referenced by UnixNetVConnection::acceptEvent(), NetAccept::acceptFastEvent(), InactivityCop::check_inactivity(), UnixNetVConnection::do_io_close(), UnixNetVConnection::mainEvent(), NetHandler::mainNetEvent(), read_signal_and_update(), and write_signal_and_update().
void net_activity | ( | UnixNetVConnection * | vc, | |
EThread * | thread | |||
) |
Definition at line 68 of file UnixNetVConnection.cc.
References UnixNetVConnection::inactivity_timeout_in, ink_get_hrtime(), UnixNetVConnection::next_inactivity_timeout_at, EThread::schedule_in_local(), and NetVConnection::thread.
Referenced by UnixNetVConnection::netActivity(), read_from_net(), and write_to_net_io().
static void read_from_net | ( | NetHandler * | nh, | |
UnixNetVConnection * | vc, | |||
EThread * | thread | |||
) | [static] |
Definition at line 206 of file UnixNetVConnection.cc.
References VIO::_cont, IOBufferBlock::_end, a, VIO::buffer, UnixNetVConnection::con, Debug, NetState::enabled, EVENT_CONT, Connection::fd, MIOBuffer::fill(), MIOBuffer::first_write_block(), ink_assert, Ptr< T >::m_ptr, VIO::mutex, Thread::mutex, MUTEX_TRY_LOCK_FOR, VIO::ndone, net_activity(), net_calls_to_read_nodata_stat, net_calls_to_read_stat, NET_DEBUG_COUNT_DYN_STAT, NET_MAX_IOV, net_read_bytes_stat, NET_SUM_DYN_STAT, IOBufferBlock::next, VIO::ntodo(), VIO::op, SocketManager::read(), VIO::READ, UnixNetVConnection::read, read_disable(), read_reschedule(), read_signal_and_update(), read_signal_done(), read_signal_error(), SocketManager::readv(), socketManager, NetState::triggered, VC_EVENT_EOS, VC_EVENT_READ_COMPLETE, VC_EVENT_READ_READY, NetState::vio, IOBufferBlock::write_avail(), MIOBuffer::write_avail(), and MIOBufferAccessor::writer().
Referenced by UnixNetVConnection::net_read_io().
static void read_reschedule | ( | NetHandler * | nh, | |
UnixNetVConnection * | vc | |||
) | [inline, static] |
Definition at line 48 of file UnixNetVConnection.cc.
References NetState::enabled, UnixNetVConnection::ep, UnixNetVConnection::read, EventIO::refresh(), and NetState::triggered.
Referenced by read_from_net(), read_signal_done(), UnixNetVConnection::readReschedule(), and write_to_net_io().
static int read_signal_and_update | ( | int | event, | |
UnixNetVConnection * | vc | |||
) | [inline, static] |
Definition at line 134 of file UnixNetVConnection.cc.
References VIO::_cont, close_UnixNetVConnection(), UnixNetVConnection::closed, Continuation::handleEvent(), ink_assert, UnixNetVConnection::read, UnixNetVConnection::recursion, this_ethread(), NetVConnection::thread, and NetState::vio.
Referenced by UnixNetVConnection::mainEvent(), read_from_net(), read_signal_done(), and UnixNetVConnection::readSignalAndUpdate().
static int read_signal_done | ( | int | event, | |
NetHandler * | nh, | |||
UnixNetVConnection * | vc | |||
) | [inline, static] |
Definition at line 164 of file UnixNetVConnection.cc.
References NetState::enabled, EVENT_DONE, UnixNetVConnection::read, read_reschedule(), and read_signal_and_update().
Referenced by read_from_net(), read_signal_error(), and UnixNetVConnection::readSignalDone().
static int read_signal_error | ( | NetHandler * | nh, | |
UnixNetVConnection * | vc, | |||
int | lerrno | |||
) | [inline, static] |
Definition at line 188 of file UnixNetVConnection.cc.
References VConnection::lerrno, read_signal_done(), and VC_EVENT_ERROR.
Referenced by read_from_net(), and UnixNetVConnection::readSignalError().
static void write_reschedule | ( | NetHandler * | nh, | |
UnixNetVConnection * | vc | |||
) | [inline, static] |
Definition at line 58 of file UnixNetVConnection.cc.
References NetState::enabled, UnixNetVConnection::ep, EventIO::refresh(), NetState::triggered, and UnixNetVConnection::write.
Referenced by write_signal_done(), write_to_net_io(), and UnixNetVConnection::writeReschedule().
static int write_signal_and_update | ( | int | event, | |
UnixNetVConnection * | vc | |||
) | [inline, static] |
Definition at line 149 of file UnixNetVConnection.cc.
References VIO::_cont, close_UnixNetVConnection(), UnixNetVConnection::closed, Continuation::handleEvent(), ink_assert, UnixNetVConnection::recursion, this_ethread(), NetVConnection::thread, NetState::vio, and UnixNetVConnection::write.
Referenced by UnixNetVConnection::mainEvent(), write_signal_done(), and write_to_net_io().
static int write_signal_done | ( | int | event, | |
NetHandler * | nh, | |||
UnixNetVConnection * | vc | |||
) | [inline, static] |
Definition at line 176 of file UnixNetVConnection.cc.
References NetState::enabled, EVENT_DONE, UnixNetVConnection::write, write_reschedule(), and write_signal_and_update().
Referenced by write_signal_error(), and write_to_net_io().
static int write_signal_error | ( | NetHandler * | nh, | |
UnixNetVConnection * | vc, | |||
int | lerrno | |||
) | [inline, static] |
Definition at line 195 of file UnixNetVConnection.cc.
References VConnection::lerrno, VC_EVENT_ERROR, and write_signal_done().
Referenced by write_to_net_io().
void write_to_net | ( | NetHandler * | nh, | |
UnixNetVConnection * | vc, | |||
EThread * | thread | |||
) |
Definition at line 344 of file UnixNetVConnection.cc.
References Thread::mutex, net_calls_to_writetonet_afterpoll_stat, net_calls_to_writetonet_stat, NET_DEBUG_COUNT_DYN_STAT, and write_to_net_io().
Referenced by NetHandler::mainNetEvent(), and UnixNetVConnection::reenable_re().
void write_to_net_io | ( | NetHandler * | nh, | |
UnixNetVConnection * | vc, | |||
EThread * | thread | |||
) |
Definition at line 356 of file UnixNetVConnection.cc.
References VIO::_cont, VIO::buffer, IOBufferReader::consume(), NetState::enabled, EVENT_CONT, EVENT_DONE, EVENT_ERROR, UnixNetVConnection::getSSLClientConnection(), UnixNetVConnection::getSSLHandShakeComplete(), ink_assert, UnixNetVConnection::load_buffer_and_write(), Ptr< T >::m_ptr, VIO::mutex, Thread::mutex, MUTEX_TRY_LOCK_FOR, VIO::ndone, net_activity(), net_calls_to_write_nodata_stat, NET_DEBUG_COUNT_DYN_STAT, NET_SUM_DYN_STAT, net_write_bytes_stat, VIO::ntodo(), VIO::op, UnixNetVConnection::read, IOBufferReader::read_avail(), read_reschedule(), MIOBufferAccessor::reader(), SSL_EVENT_CLIENT, SSL_EVENT_SERVER, SSL_HANDSHAKE_WANT_ACCEPT, SSL_HANDSHAKE_WANT_CONNECT, SSL_HANDSHAKE_WANT_READ, SSL_HANDSHAKE_WANT_WRITE, UnixNetVConnection::sslStartHandShake(), NetState::triggered, VC_EVENT_EOS, VC_EVENT_WRITE_COMPLETE, VC_EVENT_WRITE_READY, NetState::vio, VIO::WRITE, UnixNetVConnection::write, MIOBuffer::write_avail(), write_disable(), write_reschedule(), write_signal_and_update(), write_signal_done(), write_signal_error(), and MIOBufferAccessor::writer().
Referenced by write_to_net().
ClassAllocator<UnixNetVConnection> netVCAllocator("netVCAllocator") |
Referenced by UnixNetProcessor::allocate_vc(), and UnixNetVConnection::free().