diff options
Diffstat (limited to 'socket.h')
-rw-r--r-- | socket.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/socket.h b/socket.h new file mode 100644 index 0000000000..fcf09dd0df --- /dev/null +++ b/socket.h @@ -0,0 +1,49 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +#ifndef foosockethfoo +#define foosockethfoo + +typedef struct Socket Socket; + +#include "name.h" + +typedef enum SocketState { + SOCKET_DEAD, + SOCKET_START_PRE, + SOCKET_START_POST, + SOCKET_LISTENING, + SOCKET_RUNNING, + SOCKET_STOP_PRE, + SOCKET_STOP_POST, + SOCKET_MAINTAINANCE, + _SOCKET_STATE_MAX +} SocketState; + +typedef enum SocketExecCommand { + SOCKET_EXEC_START_PRE, + SOCKET_EXEC_START_POST, + SOCKET_EXEC_STOP_PRE, + SOCKET_EXEC_STOP_POST, + _SOCKET_EXEC_MAX +} SocketExecCommand; + +struct Socket { + Meta meta; + + SocketState state; + + Address address; + int *fds; + unsigned n_fds; + + ExecCommand* exec_command[_SOCKET_EXEC_MAX]; + ExecContext exec_context; + + pid_t control_pid; + + Service *service; +}; + +extern const NameVTable socket_vtable; + +#endif |