This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
stellar-stellar-2022/sdk/example/custom_event_plugin.cpp
yangwei 658108724c add deps directory
update inner include headers
2022-07-14 15:05:18 +08:00

35 lines
1.1 KiB
C++

#include "session.h"
#include "packet.h"
#include "plugin.h"
struct custom_session_event *_event = nullptr;
void *custom_decode(const char *payload, uint32_t len, void **pme)
{
return nullptr;
}
int custom_plugin_entry(const struct session *s, int what, struct packet *p, const char *payload, uint32_t len, void **pme)
{
void *info= custom_decode(payload, len, pme);
struct session *new_session=session_manager_custom_session_derive(s, _event);
session_manager_trigger_event(new_session, SESSION_EVENT_OPENING, info);
session_manager_trigger_event(new_session, SESSION_EVENT_META, info);
return 0;
}
int custom_event_plugin_entry(const struct session *s, int what, struct packet *p, const char *payload, uint32_t len, void **pme)
{
return 0;
}
int custom_plugin_init()
{
_event = session_manager_custom_session_event_register("SESSION_TYPE_CUSTOM", (int)(SESSION_EVENT_OPENING|SESSION_EVENT_RAW_PKT|SESSION_EVENT_META|SESSION_EVENT_CLOSING));
plugin_session_event_register(SESSION_TYPE_TCP, custom_plugin_entry, nullptr);
plugin_custom_session_event_register("SESSION_TYPE_CUSTOM", custom_event_plugin_entry, nullptr);
return 0;
}