Data Fields

_cp_socket Struct Reference
[Cp_socket]

cp_socket is a 'server socket'. More...

#include <socket.h>

Data Fields

int id
 socket id
int port
 the port this socket listens on
int backlog
 max backlog
struct timeval delay
 max blocking time
int connections_served
 number of connections accepted
struct timeval created
 creation time
cp_hashlistfds
 all available file descriptors
cp_thread_pooltpool
 cp_thread pool (if requested)
int poolsize_min
 min cp_thread count for cp_thread pool
int poolsize_max
 max cp_thread count for cp_thread pool
unsigned int fdn
 largest fd - needed for select()
cp_socket_strategy strategy
 threadpool or callback
union {
   cp_socket_thread_function   thread_fn
   cp_socket_callback   callback
action
 placeholder for action
int closing
 shutdown flag
void * owner
cp_vector * shutdown_callback
 shutdown callback list

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.


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