From 4735a8073a00604636ac8bc4bec8e0667783cec7 Mon Sep 17 00:00:00 2001 From: yangwei Date: Wed, 27 Jul 2022 14:11:29 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A6=84=20refactor(plugin=20manager):=20Up?= =?UTF-8?q?dating=20interface=20definitions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sdk/include/session.h | 11 ++++++----- src/main.cpp | 8 ++++---- src/plugin_manager/plugin_manager.cpp | 25 ++++++++++++++++++++----- src/plugin_manager/plugin_manager.h | 25 +++++-------------------- src/session_manager/session_manager.cpp | 6 +++--- src/session_manager/session_manager.h | 8 ++++---- 6 files changed, 42 insertions(+), 41 deletions(-) diff --git a/sdk/include/session.h b/sdk/include/session.h index ea3af84..e2ed19e 100644 --- a/sdk/include/session.h +++ b/sdk/include/session.h @@ -25,11 +25,12 @@ enum stellar_session_type enum stellar_session_event_type { - SESSION_EVENT_OPENING=0x01, - SESSION_EVENT_RAW_PKT=0x02, - SESSION_EVENT_ORDERED_PKT=0x04, - SESSION_EVENT_META=0x08, - SESSION_EVENT_CLOSING=0x10, + SESSION_EVENT_OPENING = 1<<1, + SESSION_EVENT_RAW_PKT = 1<<2, + SESSION_EVENT_ORDERED_PKT = 1<<3, + SESSION_EVENT_META = 1<<4, + SESSION_EVENT_TIMEOUT = 1<<5, + SESSION_EVENT_CLOSING = 1<<6, }; struct stellar_session_event_extras; diff --git a/src/main.cpp b/src/main.cpp index e09573f..891300a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,8 +9,8 @@ struct stellar_event_base_loop_arg { struct packet_io_device *dev; - struct session_manager_handle *session_mgr; - struct plugin_manager_handle *plug_mgr; + struct session_manager *session_mgr; + struct plugin_manager *plug_mgr; int tid; }; @@ -55,8 +55,8 @@ struct packet_io_device *packet_io_init(int worker_thread_num, const char *insta int main(int argc, char ** argv) { //manager_init - struct session_manager_handle *session_mgr = session_manager_init(); - struct plugin_manager_handle *plug_mgr = plugin_manager_init(); + struct session_manager *session_mgr = session_manager_init(); + struct plugin_manager *plug_mgr = plugin_manager_init(); //register build-in plugin plugin_manager_event_register(plug_mgr, "HTTP", http_decoder, nullptr); diff --git a/src/plugin_manager/plugin_manager.cpp b/src/plugin_manager/plugin_manager.cpp index 267d75c..4fba201 100644 --- a/src/plugin_manager/plugin_manager.cpp +++ b/src/plugin_manager/plugin_manager.cpp @@ -1,8 +1,8 @@ +#include +#include + #include "deps/uthash/uthash.h" - #include "sdk/include/session.h" - - #include "session_manager.h" #if 0 @@ -30,6 +30,21 @@ struct plugin_manager #endif +struct stellar_plugin_ctx +{ + void *call_back_arg; + const struct timeval timeout; + fn_session_event_callback call_back; + TAILQ_ENTRY(stellar_plugin_ctx) tqe; +}; + +TAILQ_HEAD(stellar_plugin_ctx_list, stellar_plugin_ctx); + +struct stellar_plugin_data +{ + stellar_plugin_ctx_list plugin_ctx_list; +}; + struct plugin_manager_handle *plugin_manager_init() { return nullptr; @@ -40,7 +55,7 @@ int plugin_manager_load(const char *plugin_conf_path) return 0; } -int plugin_manager_event_register(struct plugin_manager_handle *h, +int plugin_manager_event_register(struct plugin_manager *h, const char *session_type_name, fn_session_event_callback call_back, const struct timeval *timeout) @@ -48,7 +63,7 @@ int plugin_manager_event_register(struct plugin_manager_handle *h, return 0; } -void plugin_manager_dispatch(struct plugin_manager_handle *h, struct stellar_event *event) +void plugin_manager_dispatch(struct plugin_manager *h, struct stellar_event *event) { #if 0 struct session *s = container_of(event, struct session, cur_ev); diff --git a/src/plugin_manager/plugin_manager.h b/src/plugin_manager/plugin_manager.h index 65961bb..cfe2905 100644 --- a/src/plugin_manager/plugin_manager.h +++ b/src/plugin_manager/plugin_manager.h @@ -1,35 +1,20 @@ #pragma once -#include -#include + #include "sdk/include/session.h" #include "sdk/include/plugin.h" -struct stellar_plugin_ctx -{ - void *call_back_arg; - const struct timeval timeout; - fn_session_event_callback call_back; - TAILQ_ENTRY(stellar_plugin_ctx) tqe; -}; -TAILQ_HEAD(stellar_plugin_ctx_list, stellar_plugin_ctx); +struct plugin_manager; +struct plugin_manager *plugin_manager_init(); -struct stellar_plugin_data -{ - stellar_plugin_ctx_list plugin_ctx_list; -}; - -struct plugin_manager_handle; -struct plugin_manager_handle *plugin_manager_init(); - -int plugin_manager_event_register(struct plugin_manager_handle *h, +int plugin_manager_event_register(struct plugin_manager *h, const char *session_type_name, fn_session_event_callback call_back, const struct timeval *timeout); int plugin_manager_load(const char *plugin_conf_path); -void plugin_manager_dispatch(struct plugin_manager_handle *h, struct stellar_event *ev); \ No newline at end of file +void plugin_manager_dispatch(struct plugin_manager *h, struct stellar_event *ev); \ No newline at end of file diff --git a/src/session_manager/session_manager.cpp b/src/session_manager/session_manager.cpp index ec8521e..ff10c3e 100644 --- a/src/session_manager/session_manager.cpp +++ b/src/session_manager/session_manager.cpp @@ -5,7 +5,7 @@ struct session_manager struct stellar_session **tcp_table, **udp_table; }; -struct session_manager_handle *session_manager_init() +struct session_manager *session_manager_init() { return nullptr; } @@ -24,13 +24,13 @@ struct stellar_session *session_manager_session_derive(const struct stellar_sess return nullptr; } -struct stellar_event *session_manager_commit(struct session_manager_handle *h, struct stellar_packet *p) +struct stellar_event *session_manager_commit(struct session_manager *h, struct stellar_packet *p) { return nullptr; }; -struct stellar_event *session_manager_fetch_event(struct session_manager_handle *h) +struct stellar_event *session_manager_fetch_event(struct session_manager *h) { return nullptr; } diff --git a/src/session_manager/session_manager.h b/src/session_manager/session_manager.h index d18def7..047d8c5 100644 --- a/src/session_manager/session_manager.h +++ b/src/session_manager/session_manager.h @@ -12,11 +12,11 @@ struct stellar_session_event_data struct stellar_plugin_data *plugin_data; }; -struct session_manager_handle; -struct session_manager_handle *session_manager_init(); +struct session_manager; +struct session_manager *session_manager_init(); -struct stellar_event *session_manager_commit(struct session_manager_handle *session_mgr, struct stellar_packet *pkt); -struct stellar_event *session_manager_fetch_event(struct session_manager_handle *session_mgr); +struct stellar_event *session_manager_commit(struct session_manager *session_mgr, struct stellar_packet *pkt); +struct stellar_event *session_manager_fetch_event(struct session_manager *session_mgr); struct stellar_session {