Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

_cp_socket Struct Reference
[Cp_socket]

#include <socket.h>


Data Fields

int id
int port
int backlog
timeval delay
int connections_served
timeval created
cp_hashlistfds
cp_thread_pooltpool
int poolsize_min
int poolsize_max
unsigned int fdn
cp_socket_strategy strategy
union {
   cp_socket_thread_function   thread_fn
   cp_socket_callback   callback
action
int closing
void * owner
cp_vector * shutdown_callback


Detailed Description

cp_socket is a 'server socket'. create a cp_socket to listen on a port, specify a callback to implemet your communication protocol (libcprops provides a basic http implementation you could plug in) and the strategy you want for handling handling multiple connections - use a thread pool to serve each connection on its own thread or a more select()-like approach.

If you create a socket with the CPSOCKET_STRATEGY_THREADPOOL, supply a thread function to handle communication once a connection has been accept()-ed. Your cp_thread function should close the connection when done and check the 'closing' flag, which is set to 1 on shutdown.

If you create a socket with the CPSOCKET_STRATEGY_CALLBACK, supply a callback to process incremental feeds as they come along.

Definition at line 119 of file socket.h.


Field Documentation

union { ... } _cp_socket::action
 

placeholder for action

Referenced by cp_socket_create().

int _cp_socket::backlog
 

max backlog

Definition at line 123 of file socket.h.

Referenced by cp_socket_create(), and cp_socket_set_backlog().

int _cp_socket::closing
 

shutdown flag

Definition at line 148 of file socket.h.

int _cp_socket::connections_served
 

number of connections accepted

Definition at line 125 of file socket.h.

struct timeval _cp_socket::created
 

creation time

Definition at line 126 of file socket.h.

struct timeval _cp_socket::delay
 

max blocking time

Definition at line 124 of file socket.h.

Referenced by cp_socket_create(), cp_socket_set_delay(), cp_socket_set_delay_sec(), and cp_socket_set_delay_usec().

unsigned int _cp_socket::fdn
 

largest fd - needed for select()

Definition at line 138 of file socket.h.

cp_hashlist* _cp_socket::fds
 

all available file descriptors

Definition at line 134 of file socket.h.

Referenced by cp_socket_create().

int _cp_socket::id
 

socket id

Definition at line 121 of file socket.h.

Referenced by cp_socket_create().

int _cp_socket::poolsize_max
 

max cp_thread count for cp_thread pool

Definition at line 137 of file socket.h.

Referenced by cp_socket_create(), and cp_socket_set_poolsize_max().

int _cp_socket::poolsize_min
 

min cp_thread count for cp_thread pool

Definition at line 136 of file socket.h.

Referenced by cp_socket_create(), and cp_socket_set_poolsize_min().

int _cp_socket::port
 

the port this socket listens on

Definition at line 122 of file socket.h.

Referenced by cp_socket_create().

cp_vector* _cp_socket::shutdown_callback
 

shutdown callback list

Definition at line 154 of file socket.h.

cp_socket_strategy _cp_socket::strategy
 

threadpool or callback

Definition at line 139 of file socket.h.

Referenced by cp_socket_create().

cp_thread_pool* _cp_socket::tpool
 

cp_thread pool (if requested)

Definition at line 135 of file socket.h.


The documentation for this struct was generated from the following file:
Generated on Sat Dec 1 10:25:30 2007 for cprops by  doxygen 1.3.9.1