Data Structures | Defines | Typedefs | Enumerations | Functions

sst/elements/genericProc/programs/libcprops/socket.h File Reference

definitions for socket abstraction api More...

#include "common.h"
#include "config.h"
#include "hashlist.h"
#include "vector.h"
#include "thread.h"

Go to the source code of this file.

Data Structures

struct  _cp_socket
 cp_socket is a 'server socket'. More...
struct  _cp_connection_descriptor
 connection descriptor structure More...

Defines

#define CPSOCKET_DEFAULT_BACKLOG   50
#define CPSOCKET_DEFAULT_DELAY_SEC   1
#define CPSOCKET_DEFAULT_DELAY_USEC   0
#define CPSOCKET_THREADPOOL_DEFAULT_SIZE_MIN   5
#define CPSOCKET_THREADPOOL_DEFAULT_SIZE_MAX   50
#define cp_connection_descriptor_get_socket(cd)   ((cd)->sock)
 return cp_socket struct for given connection descriptor
#define cp_connection_descriptor_get_addr(cd)   ((cd)->addr)
 return client address for given connection descriptor
#define cp_connection_descriptor_get_fd(cd)   ((cd)->fd)
 return file descriptor for given connection descriptor

Typedefs

typedef CPROPS_DLL enum { ... }  cp_socket_strategy
 cp_socket connection handling strategy
typedef void *(* cp_socket_thread_function )(void *)
 thread function for threadpool implementation
typedef int(* cp_socket_callback )(struct _cp_socket *, int fd)
 function prototype for callback implementation
typedef CPROPS_DLL struct
_cp_socket 
cp_socket
 cp_socket is a 'server socket'.
typedef CPROPS_DLL struct
_cp_connection_descriptor 
cp_connection_descriptor
 connection descriptor structure

Enumerations

enum  { CPSOCKET_STRATEGY_CALLBACK, CPSOCKET_STRATEGY_THREADPOOL }
 

cp_socket connection handling strategy


Functions

void cp_socket_init ()
 recommended to call before using socket functions
void cp_socket_stop_all ()
 call from signal handler to stop sockets in waiting select() and close all connections
void cp_socket_shutdown ()
 performs cleanup
CPROPS_DLL void cp_tcp_add_shutdown_callback (void(*cb)(void *), void *prm)
 add callback to be made on tcp layer shutdown
void cp_socket_set_backlog (cp_socket *socket, int backlog)
 set number of outstanding requests before accept() fails new connections
void cp_socket_set_delay (cp_socket *socket, struct timeval delay)
 delay time before re-accept()ing
void cp_socket_set_delay_sec (cp_socket *socket, long sec)
 seconds before re-accept()ing
void cp_socket_set_delay_usec (cp_socket *socket, long usec)
 microseconds before re-accept()ing
void cp_socket_set_poolsize_min (cp_socket *socket, int min)
 lower size limit for threadpool implementation
void cp_socket_set_poolsize_max (cp_socket *socket, int max)
 upper size limit for threadpool implementation
void cp_socket_set_owner (cp_socket *socket, void *owner)
 useful free pointer for client code
cp_socketcp_socket_create (int port, cp_socket_strategy strategy, void *fn)
 create a new cp_socket struct
void cp_socket_delete (cp_socket *sock)
 deallocate a socket descriptor
int cp_socket_listen (cp_socket *sock)
 cp_socket_listen attempts to create a SOCK_STREAM socket with socket(), bind to a local port with bind(), and set the socket to listen for connections with listen().
int cp_socket_select (cp_socket *sock)
 block and wait for connections
int cp_socket_connection_close (cp_socket *sock, int fd)
 close a (non ssl) connection
void * cp_socket_add_shutdown_callback (cp_socket *sock, void(*cb)(void *), void *prm)
 add a callback to be made on socket shutdown
cp_connection_descriptorcp_connection_descriptor_create (cp_socket *sock, struct sockaddr_in *addr, int fd)
 internal: create a new connection descriptor
void cp_connection_descriptor_destroy (cp_connection_descriptor *conn_desc)
 deallocate a connection descriptor
int cp_connection_descrpitor_read (cp_connection_descriptor *desc, char *buf, int len)
 read from a connection descriptor
int cp_connection_descriptor_write (cp_connection_descriptor *desc, char *buf, int len)
 write on a connection descriptor

Detailed Description

definitions for socket abstraction api