Public Member Functions | Protected Member Functions | Protected Attributes

base::WorkerThread Class Reference

Worker thread for multi-threaded socket daemons. More...

#include <libppbase/base/WorkerThread.h>

Inheritance diagram for base::WorkerThread:
base::Thread base::Mutex

List of all members.

Public Member Functions

 WorkerThread (MTSocketDaemon *daemon, time_t lifetime=0, bool web=false)
 Constructor.
 ~WorkerThread ()
 Destructor.
time_t getLifetime () const
 Returns the life time.
LoggetLog ()
 Returns the log object.
void getStatus (int *status, String &request, String &addr, u_longlong_t *tv)
 Retrieves the thread's status.
bool isAuxiliary () const
 Checks if this thread is an auxiliary one.
bool isWeb () const
 Checks if this thread is a web thread.
void run ()
 Handles many connections.
void run (Socket *sock)
 Handles one connection.

Protected Member Functions

virtual void config ()
 Configures the thread.
virtual void handle ()=0
 Handles a connection.
bool readln (String &buf, bool strip=false)
 Reads a line from the socket, doing debug logging if enabled.
void setStatus (int status, const String &request, const String &addr, u_longlong_t tv=0)
 Sets the thread's status.
void write (const String &s)
 Writes data to the socket, doing debug logging if enabled.
void writef (const char *fmt,...)
 Writes data to the socket, doing debug logging if enabled.

Protected Attributes

String _addr
 the ip address of the connected client
MTSocketDaemon_daemon
 the multi-threaded socket daemon object
time_t _lifetime
 time until this thread may live, 0 means infinite
Log_log
 logging object
WorkPile< Socket * > * _queue
 work queue to fetch jobs from
Socket_sock
 socket to connected client
int _status
 thread status: 0=idle, 1=busy
String _status_addr
 ip address of the connected client
String _status_request
 currently executed action
u_longlong_t _status_time
 start time of the currently executed action (ticks)
int _timeout
 socket timeout in seconds
bool _web
 flag: this is a web worker thread

Detailed Description

Worker thread for multi-threaded socket daemons.

Author:
Christoph Schwarz
Version:
$Id: WorkerThread.h 21 2010-09-05 04:18:17Z cschwarz1 $

Constructor & Destructor Documentation

base::WorkerThread::WorkerThread ( MTSocketDaemon daemon,
time_t  lifetime = 0,
bool  web = false 
)

Constructor.

Parameters:
daemon the daemon
lifetime time until to live (unix timestamp)
web true=web thread, false=worker thread

Member Function Documentation

time_t base::WorkerThread::getLifetime (  )  const

Returns the life time.

Returns:
the life time as unix timestamp
Log* base::WorkerThread::getLog (  ) 

Returns the log object.

Returns:
the log object
void base::WorkerThread::getStatus ( int *  status,
String request,
String addr,
u_longlong_t tv 
)

Retrieves the thread's status.

Parameters:
status returns the status, 0=idle, 1=busy
request returns the currently executed request
addr returns the ip address of the connected client
tv returns the start time of the request (ticks)
bool base::WorkerThread::isAuxiliary (  )  const

Checks if this thread is an auxiliary one.

Returns:
true=auxiliary, false=primary
bool base::WorkerThread::isWeb (  )  const

Checks if this thread is a web thread.

Returns:
true=web, false=worker
void base::WorkerThread::setStatus ( int  status,
const String request,
const String addr,
u_longlong_t  tv = 0 
) [protected]

Sets the thread's status.

Parameters:
status 0=idle, 1=busy
request currently executed request
addr ip address of the connected client
tv start time of the request (ticks)

The documentation for this class was generated from the following file: