From c0a7ad25c2a91c3c919a5c50c0e73745cf257b26 Mon Sep 17 00:00:00 2001 From: Thomas Harning Jr Date: Sun, 16 Dec 2007 13:59:06 -0500 Subject: [PATCH] core: Added new headers for re-arched design --- core/include/config.h | 10 ++++++++++ core/include/connect_handler.h | 21 +++++++++++++++++++++ core/include/core.h | 16 ++++++++++++++++ core/include/dns_handler.h | 13 +++++++++++++ core/include/input_handler.h | 12 ++++++++++++ core/include/listen_handler.h | 21 +++++++++++++++++++++ core/include/output_handler.h | 12 ++++++++++++ core/include/request.h | 19 +++++++++++++++++++ core/include/types.h | 36 ++++++++++++++++++++++++++++++++++++ 9 files changed, 160 insertions(+) create mode 100644 core/include/config.h create mode 100644 core/include/connect_handler.h create mode 100644 core/include/core.h create mode 100644 core/include/dns_handler.h create mode 100644 core/include/input_handler.h create mode 100644 core/include/listen_handler.h create mode 100644 core/include/output_handler.h create mode 100644 core/include/request.h create mode 100644 core/include/types.h diff --git a/core/include/config.h b/core/include/config.h new file mode 100644 index 0000000..26c011b --- /dev/null +++ b/core/include/config.h @@ -0,0 +1,10 @@ +#ifndef CONFIG_H +#define CONFIG_H + +#include "types.h" + +#ifndef INLINE +#define INLINE static inline +#endif + +#endif diff --git a/core/include/connect_handler.h b/core/include/connect_handler.h new file mode 100644 index 0000000..eaf67e4 --- /dev/null +++ b/core/include/connect_handler.h @@ -0,0 +1,21 @@ +#ifndef CONNECT_HANDLER_H +#define CONNECT_HANDLER_H + +#include "config.h" + +#include +#include /* sockaddr */ + +struct connect_handler { + core_t *core; +}; + +connect_request_t *new_connect_request(connect_handler_t *h, const struct sockaddr *addr, socklen_t addr_len); + +void connect_request_set_socket(connect_request_t *cr, int fd); + +void connect_request_set_create_params(connect_request_t *cr, int domain, int type, int protocol); + +void connect_handler_queue(connect_handler_t *h, connect_request_t *cr); + +#endif diff --git a/core/include/core.h b/core/include/core.h new file mode 100644 index 0000000..f5c7d47 --- /dev/null +++ b/core/include/core.h @@ -0,0 +1,16 @@ +#ifndef CORE_H +#define CORE_H + +#include "types.h" + +struct core { + dns_handler_t *dns; + connect_handler_t *connect; + listen_handler_t *listen; + output_handler_t *output; + input_handler_t *input; +}; + +core_t *new_core(); + +#endif diff --git a/core/include/dns_handler.h b/core/include/dns_handler.h new file mode 100644 index 0000000..e1f957c --- /dev/null +++ b/core/include/dns_handler.h @@ -0,0 +1,13 @@ +#ifndef DNS_HANDLER_H + +#include "config.h" + +struct dns_handler { + core_t *c; +}; + +dns_request_t *new_dns_request(dns_handler_t *h, const char *node, const char *service, const struct addrinfo *hints); + +void dns_handler_queue(dns_handler_t *h, dns_request_t *dr); + +#endif diff --git a/core/include/input_handler.h b/core/include/input_handler.h new file mode 100644 index 0000000..1953805 --- /dev/null +++ b/core/include/input_handler.h @@ -0,0 +1,12 @@ +#ifndef INPUT_HANDLER_H +#define INPUT_HANDLER_H + +#include "config.h" + +struct input_handler { + core_t *c; +}; + +void input_handler_queue(input_handler_t *h, input_request_t *dr); + +#endif diff --git a/core/include/listen_handler.h b/core/include/listen_handler.h new file mode 100644 index 0000000..5226edf --- /dev/null +++ b/core/include/listen_handler.h @@ -0,0 +1,21 @@ +#ifndef LISTEN_HANDLER_H +#define LISTEN_HANDLER_H + +#include "config.h" + +#include +#include /* sockaddr */ + +struct listen_handler { + core_t *core; +}; + +listen_request_t *new_listen_request(listen_handler_t *h, const struct sockaddr *addr, socklen_t addr_len, int persistent); + +void listen_request_set_socket(listen_request_t *cr, int fd); + +void listen_request_set_create_params(listen_request_t *cr, int domain, int type, int protocol); + +void listen_handler_queue(listen_handler_t *h, listen_request_t *lr); + +#endif diff --git a/core/include/output_handler.h b/core/include/output_handler.h new file mode 100644 index 0000000..6b2ab2e --- /dev/null +++ b/core/include/output_handler.h @@ -0,0 +1,12 @@ +#ifndef OUTPUT_HANDLER_H +#define OUTPUT_HANDLER_H + +#include "config.h" + +struct output_handler { + core_t *c; +}; + +void output_handler_queue(output_handler_t *h, output_request_t *dr); + +#endif diff --git a/core/include/request.h b/core/include/request.h new file mode 100644 index 0000000..5bf7409 --- /dev/null +++ b/core/include/request.h @@ -0,0 +1,19 @@ +#ifndef REQUEST_H +#define REQUEST_H + +#include "config.h" + +typedef void (*complete_callback)(request_t *); +typedef int (*error_callback)(request_t *, int); + +struct request { + complete_callback on_complete; + error_callback on_error; +}; + +INLINE void request_set_callbacks(request_t *req, complete_callback *on_complete, error_callback *on_error) { + req->on_complete = on_complete; + req->on_error = on_error; +} + +#endif diff --git a/core/include/types.h b/core/include/types.h new file mode 100644 index 0000000..ab0ceea --- /dev/null +++ b/core/include/types.h @@ -0,0 +1,36 @@ +#ifndef TYPES_H +#define TYPES_H + +struct core; +struct dns_handler; +struct connect_handler; +struct listen_handler; +struct output_handler; +struct input_handler; + +typedef struct core core_t; +typedef struct dns_handler dns_handler_t; +typedef struct connect_handler connect_handler_t; +typedef struct listen_handler listen_handler_t; +typedef struct output_handler output_handler_t; +typedef struct input_handler input_handler_t; + +struct request; +typedef struct request request_t; + +struct dns_request; +typedef struct dns_request dns_request_t; + +struct connect_request; +typedef struct connect_request connect_request_t; + +struct listen_request; +typedef struct listen_request listen_request_t; + +struct output_request; +typedef struct output_request output_request_t; + +struct input_request; +typedef struct input_request input_request_t; + +#endif -- 2.11.4.GIT