add deps directory

update inner include headers
This commit is contained in:
yangwei
2022-07-06 23:18:13 +08:00
parent 4ca8c002ee
commit 658108724c
34 changed files with 3567 additions and 12 deletions

View File

@@ -0,0 +1,60 @@
#include "plugin.h"
#include "session_manager.h"
#include "utils.h"
struct session_event_callback
{
const char *session_name;
fn_session_event_callback callback;
TAILQ_ENTRY(session_event_callback) session_event_cb_tq_entries;
UT_hash_handle hh;
};
TAILQ_HEAD(session_event_callback_list, session_event_callback);
struct session_event_callback_map
{
struct session_event_callback_list session_ev_cb_list;
UT_hash_handle hh;
};
struct plugin_manager
{
struct session_event_callback_list fixed_event_cbs[SESSION_TYPE_MAX];
struct session_event_callback_map *session_ev_cb_map;
};
struct plugin_manager g_plug_mgr;
void plugin_manager_dispatch(struct session_event *event)
{
struct session *s = container_of(event, struct session, cur_ev);
struct session_event_callback_map *t_map;
struct session_event_callback *session_ev_cb;
HASH_FIND(hh, g_plug_mgr.session_ev_cb_map, s->name, strlen(s->name), t_map);
if(!t_map) return;
switch (s->state)
{
case SESSION_EVENT_OPENING:
TAILQ_FOREACH(session_ev_cb, &t_map->session_ev_cb_list, session_event_cb_tq_entries)
{
struct session_event *ev = ALLOC(struct session_event, 1);
ev->callback = session_ev_cb->callback;
ev->callback(s, SESSION_EVENT_OPENING, NULL, NULL, 0, &ev->cb_pme);
if(ev->state == 1)
{
TAILQ_INSERT_TAIL(&s->ev_list, ev, session_event_tq_entries);
}
else
{
FREE(&ev);// TODO;
}
}
break;
default:
break;
}
return;
}