represents a single helper process abstraction More...
#include <helper.h>


Classes | |
struct | _helper_flags |
Public Types | |
typedef std::list< Helper::Xaction * > | Requests |
Public Member Functions | |
~HelperServerBase () override | |
void | closePipesSafely (const char *name) |
void | closeWritePipeSafely (const char *name) |
virtual bool | reserved ()=0 |
whether the server is locked for exclusive use by a client More... | |
virtual void | dropQueued () |
dequeues and sends a Helper::Unknown answer to all queued requests More... | |
virtual helper * | getParent () const =0 |
the helper object that created this server More... | |
void | initStats () |
virtual void * | toCbdata ()=0 |
Public Attributes | |
const InstanceId< HelperServerBase > | index |
int | pid |
Ip::Address | addr |
Comm::ConnectionPointer | readPipe |
Comm::ConnectionPointer | writePipe |
void * | hIpc |
char * | rbuf |
size_t | rbuf_sz |
size_t | roffset |
struct timeval | dispatch_time |
struct timeval | answer_time |
dlink_node | link |
struct HelperServerBase::_helper_flags | flags |
Requests | requests |
requests in order of submission/expiration More... | |
struct { | |
uint64_t uses | |
uint64_t replies | |
uint64_t pending | |
uint64_t releases | |
uint64_t timedout | |
} | stats |
Private Member Functions | |
virtual void | finalizedInCbdataChild ()=0 |
hack: ensure CBDATA_CHILD() after a toCbdata()-defining CBDATA_INTERMEDIATE() More... | |
Detailed Description
Member Typedef Documentation
◆ Requests
typedef std::list<Helper::Xaction *> HelperServerBase::Requests |
Constructor & Destructor Documentation
◆ ~HelperServerBase()
|
override |
Definition at line 144 of file helper.cc.
References memFreeBuf(), rbuf, and rbuf_sz.
Member Function Documentation
◆ closePipesSafely()
void HelperServerBase::closePipesSafely | ( | const char * | name | ) |
Closes pipes to the helper safely. Handles the case where the read and write pipes are the same FD.
- Parameters
-
name displayed for the helper being shutdown if logging an error
Definition at line 74 of file helper.cc.
References Comm::Connection::close(), HelperServerBase::_helper_flags::closing, DBG_IMPORTANT, debugs, Comm::Connection::fd, flags, getCurrentTime(), hIpc, index, pid, readPipe, and writePipe.
Referenced by helperHandleRead(), helperReturnBuffer(), helperShutdown(), helperStatefulHandleRead(), and helperStatefulShutdown().
◆ closeWritePipeSafely()
void HelperServerBase::closeWritePipeSafely | ( | const char * | name | ) |
Closes the reading pipe. If the read and write sockets are the same the write pipe will also be closed. Otherwise its left open for later handling.
- Parameters
-
name displayed for the helper being shutdown if logging an error
Definition at line 102 of file helper.cc.
References Comm::Connection::close(), HelperServerBase::_helper_flags::closing, DBG_IMPORTANT, debugs, Comm::Connection::fd, flags, getCurrentTime(), hIpc, index, pid, readPipe, and writePipe.
Referenced by helper_server::~helper_server(), helper_stateful_server::~helper_stateful_server(), helperReturnBuffer(), and helperStatefulServerDone().
◆ dropQueued()
|
virtual |
Reimplemented in helper_server.
Definition at line 128 of file helper.cc.
References requests.
Referenced by helper_server::dropQueued(), and helper_stateful_server::HelperServerClosed().
◆ finalizedInCbdataChild()
|
privatepure virtualinherited |
◆ getParent()
|
pure virtual |
Implemented in helper_server, and helper_stateful_server.
◆ initStats()
void HelperServerBase::initStats | ( | ) |
Definition at line 64 of file helper.cc.
References stats.
Referenced by helperOpenServers(), and helperStatefulOpenServers().
◆ reserved()
|
pure virtual |
Implemented in helper_server, and helper_stateful_server.
Referenced by helper::packStatsInto().
◆ toCbdata()
|
pure virtualinherited |
Referenced by AsyncJob::callException(), and AsyncJob::callStart().
Member Data Documentation
◆ addr
Ip::Address HelperServerBase::addr |
Definition at line 206 of file helper.h.
Referenced by helperOpenServers(), and helperStatefulOpenServers().
◆ answer_time
struct timeval HelperServerBase::answer_time |
Definition at line 216 of file helper.h.
Referenced by helperReturnBuffer(), helperStatefulHandleRead(), and helper::packStatsInto().
◆ dispatch_time
struct timeval HelperServerBase::dispatch_time |
Definition at line 215 of file helper.h.
Referenced by helperReturnBuffer(), helperStatefulDispatch(), helperStatefulHandleRead(), and helper::packStatsInto().
◆ flags
struct HelperServerBase::_helper_flags HelperServerBase::flags |
Referenced by closePipesSafely(), closeWritePipeSafely(), GetFirstAvailable(), helper::handleKilledServer(), helperDispatch(), helperDispatchWriteDone(), helperReturnBuffer(), helperShutdown(), helperStatefulServerDone(), helperStatefulShutdown(), helper::packStatsInto(), and StatefulGetFirstAvailable().
◆ hIpc
void* HelperServerBase::hIpc |
Definition at line 209 of file helper.h.
Referenced by closePipesSafely(), closeWritePipeSafely(), helperOpenServers(), and helperStatefulOpenServers().
◆ index
const InstanceId<HelperServerBase> HelperServerBase::index |
Helper program identifier; does not change when contents do, including during assignment
Definition at line 204 of file helper.h.
Referenced by helper_stateful_server::clearReservation(), closePipesSafely(), closeWritePipeSafely(), GetFirstAvailable(), helper::handleKilledServer(), helperDispatch(), helperDispatchWriteDone(), helperHandleRead(), helperReturnBuffer(), helperShutdown(), helperStatefulDispatch(), helperStatefulHandleRead(), helperStatefulKickQueue(), helperStatefulShutdown(), helper::packStatsInto(), helper_stateful_server::reserve(), and StatefulGetFirstAvailable().
◆ link
dlink_node HelperServerBase::link |
Definition at line 218 of file helper.h.
Referenced by helper_server::~helper_server(), helper_stateful_server::~helper_stateful_server(), helperOpenServers(), and helperStatefulOpenServers().
◆ pending
uint64_t HelperServerBase::pending |
Definition at line 232 of file helper.h.
Referenced by GetFirstAvailable(), helperDispatch(), helperHandleRead(), helperReturnBuffer(), helperShutdown(), helperStatefulDispatch(), helperStatefulHandleRead(), helperStatefulServerDone(), helperStatefulShutdown(), helper::packStatsInto(), and StatefulGetFirstAvailable().
◆ pid
int HelperServerBase::pid |
Definition at line 205 of file helper.h.
Referenced by closePipesSafely(), closeWritePipeSafely(), helperOpenServers(), helperStatefulOpenServers(), and helper::packStatsInto().
◆ rbuf
char* HelperServerBase::rbuf |
Definition at line 211 of file helper.h.
Referenced by ~HelperServerBase(), helperHandleRead(), helperOpenServers(), helperStatefulHandleRead(), and helperStatefulOpenServers().
◆ rbuf_sz
size_t HelperServerBase::rbuf_sz |
Definition at line 212 of file helper.h.
Referenced by ~HelperServerBase(), helperHandleRead(), helperOpenServers(), helperReturnBuffer(), helperStatefulHandleRead(), and helperStatefulOpenServers().
◆ readPipe
Comm::ConnectionPointer HelperServerBase::readPipe |
Definition at line 207 of file helper.h.
Referenced by closePipesSafely(), closeWritePipeSafely(), helperHandleRead(), helperOpenServers(), helperStatefulHandleRead(), helperStatefulOpenServers(), and helper::packStatsInto().
◆ releases
◆ replies
uint64_t HelperServerBase::replies |
Definition at line 231 of file helper.h.
Referenced by helper::handleKilledServer(), helperReturnBuffer(), helperStatefulHandleRead(), and helper::packStatsInto().
◆ requests
Requests HelperServerBase::requests |
Definition at line 227 of file helper.h.
Referenced by helper_server::~helper_server(), helper_stateful_server::~helper_stateful_server(), helper_server::checkForTimedOutRequests(), dropQueued(), helperDispatch(), helperStatefulDispatch(), helperStatefulHandleRead(), helper::packStatsInto(), helper_server::popRequest(), and helper_server::requestTimeout().
◆ roffset
size_t HelperServerBase::roffset |
Definition at line 213 of file helper.h.
Referenced by helperHandleRead(), helperOpenServers(), helperStatefulHandleRead(), helperStatefulOpenServers(), and helper::packStatsInto().
◆
struct { ... } HelperServerBase::stats |
Referenced by helper_server::checkForTimedOutRequests(), helper_stateful_server::clearReservation(), GetFirstAvailable(), helper::handleKilledServer(), helperDispatch(), helperHandleRead(), helperReturnBuffer(), helperShutdown(), helperStatefulDispatch(), helperStatefulHandleRead(), helperStatefulServerDone(), helperStatefulShutdown(), initStats(), helper::packStatsInto(), and StatefulGetFirstAvailable().
◆ timedout
uint64_t HelperServerBase::timedout |
Definition at line 234 of file helper.h.
Referenced by helperHandleRead(), and helper::packStatsInto().
◆ uses
uint64_t HelperServerBase::uses |
Definition at line 230 of file helper.h.
Referenced by helperDispatch(), helperStatefulDispatch(), and helper::packStatsInto().
◆ writePipe
Comm::ConnectionPointer HelperServerBase::writePipe |
Definition at line 208 of file helper.h.
Referenced by helper_server::~helper_server(), helper_stateful_server::~helper_stateful_server(), closePipesSafely(), closeWritePipeSafely(), helperDispatch(), helperDispatchWriteDone(), helperOpenServers(), helperStatefulDispatch(), and helperStatefulOpenServers().
The documentation for this class was generated from the following files: