✨ feat(stellar mq topic api): add dispatch_cb_arg for dispatch_cb
This commit is contained in:
@@ -102,7 +102,7 @@ TEST(plugin_manager_init, stellar_mq_topic_create_and_update) {
|
||||
|
||||
EXPECT_EQ(stellar_mq_get_topic_id(&st, topic_name), -1); // illegal topic_name
|
||||
|
||||
int topic_id = stellar_mq_create_topic(&st, topic_name, NULL, test_mock_packet_msg_free, &st);
|
||||
int topic_id = stellar_mq_create_topic(&st, topic_name, NULL, NULL, test_mock_packet_msg_free, &st);
|
||||
EXPECT_GE(topic_id, 0);
|
||||
struct stellar_mq_topic_schema *topic_schema = NULL;
|
||||
{
|
||||
@@ -116,7 +116,7 @@ TEST(plugin_manager_init, stellar_mq_topic_create_and_update) {
|
||||
}
|
||||
|
||||
EXPECT_EQ(stellar_mq_get_topic_id(&st, topic_name), topic_id);
|
||||
EXPECT_EQ(stellar_mq_create_topic(&st, topic_name, NULL, test_mock_overwrite_packet_msg_free, plug_mgr),
|
||||
EXPECT_EQ(stellar_mq_create_topic(&st, topic_name, NULL, NULL, test_mock_overwrite_packet_msg_free, plug_mgr),
|
||||
-1); // duplicate create, return error
|
||||
{
|
||||
SCOPED_TRACE("White-box test, check stellar internal schema");
|
||||
@@ -128,7 +128,7 @@ TEST(plugin_manager_init, stellar_mq_topic_create_and_update) {
|
||||
EXPECT_STREQ(topic_schema->topic_name, topic_name);
|
||||
}
|
||||
|
||||
EXPECT_EQ(stellar_mq_update_topic(&st, topic_id, NULL, test_mock_overwrite_packet_msg_free, plug_mgr), 0);
|
||||
EXPECT_EQ(stellar_mq_update_topic(&st, topic_id, NULL, NULL, test_mock_overwrite_packet_msg_free, plug_mgr), 0);
|
||||
|
||||
{
|
||||
SCOPED_TRACE("White-box test, check stellar internal schema");
|
||||
@@ -165,7 +165,7 @@ TEST(plugin_manager_init, stellar_mq_subscribe) {
|
||||
|
||||
const char *topic_name="PACKET_TOPIC";
|
||||
|
||||
int topic_id=stellar_mq_create_topic(&st, topic_name, NULL, test_mock_packet_msg_free, &st);
|
||||
int topic_id=stellar_mq_create_topic(&st, topic_name, NULL, NULL, test_mock_packet_msg_free, &st);
|
||||
EXPECT_GE(topic_id, 0);
|
||||
|
||||
EXPECT_EQ(stellar_mq_subscribe(&st, topic_id, test_mock_on_packet_msg, 10),-1);//illgeal plugin_id
|
||||
@@ -237,7 +237,7 @@ TEST(plugin_manager_init, stellar_mq_subscribe_overwrite) {
|
||||
|
||||
const char *topic_name="SESSION_TOPIC";
|
||||
|
||||
int topic_id=stellar_mq_create_topic(&st, topic_name, NULL, test_mock_session_msg_free, &st);
|
||||
int topic_id=stellar_mq_create_topic(&st, topic_name, NULL, NULL, test_mock_session_msg_free, &st);
|
||||
EXPECT_GE(topic_id, 0);
|
||||
|
||||
EXPECT_EQ(stellar_mq_subscribe(&st, topic_id, test_mock_on_session_msg, 10),-1);//illgeal plugin_id
|
||||
@@ -590,7 +590,7 @@ TEST(plugin_manager, packet_plugins_mq_pub_sub) {
|
||||
for(int i=0; i<topic_id_num; i++)
|
||||
{
|
||||
sprintf(topic_name[i], "PACKET_TOPIC_%d", i);
|
||||
env.packet_topic_id[i]=stellar_mq_create_topic(&st, topic_name[i], NULL, test_packet_msg_free_cb_func, &env);
|
||||
env.packet_topic_id[i]=stellar_mq_create_topic(&st, topic_name[i], NULL, NULL, test_packet_msg_free_cb_func, &env);
|
||||
EXPECT_GE(env.packet_topic_id[i], 0);
|
||||
{
|
||||
SCOPED_TRACE("White-box test, check stellar internal schema");
|
||||
@@ -707,7 +707,7 @@ TEST(plugin_manager, packet_plugins_pub_overlimit) {
|
||||
for(int i=0; i<topic_id_num; i++)
|
||||
{
|
||||
sprintf(topic_name[i], "PACKET_TOPIC_%d", i);
|
||||
env.packet_topic_id[i]=stellar_mq_create_topic(&st, topic_name[i], NULL, overlimit_packet_msg_free_cb_func, &env);
|
||||
env.packet_topic_id[i]=stellar_mq_create_topic(&st, topic_name[i], NULL,NULL,overlimit_packet_msg_free_cb_func, &env);
|
||||
EXPECT_GE(env.packet_topic_id[i], 0);
|
||||
{
|
||||
SCOPED_TRACE("White-box test, check stellar internal schema");
|
||||
@@ -812,7 +812,7 @@ TEST(plugin_manager, packet_plugin_exdata_free_pub_msg) {
|
||||
EXPECT_GE(plugin_id, 0);
|
||||
|
||||
env.packet_exdata_idx[0]=stellar_exdata_new_index(&st, "PACKET_EXDATA", test_exdata_free_pub_msg_exdata_free, &env);
|
||||
env.packet_topic_id[0]=stellar_mq_create_topic(&st, "PACKET_TOPIC", NULL, test_exdata_free_pub_msg_free, &env);
|
||||
env.packet_topic_id[0]=stellar_mq_create_topic(&st, "PACKET_TOPIC", NULL, NULL, test_exdata_free_pub_msg_free, &env);
|
||||
|
||||
EXPECT_EQ(stellar_mq_subscribe(&st, env.packet_topic_id[0], test_exdata_free_pub_msg_on_packet_msg, plugin_id),0);
|
||||
|
||||
@@ -872,7 +872,7 @@ struct session_manager_plugin_env
|
||||
|
||||
typedef void on_session_msg_cb_func(int topic_id, struct session *sess, void *plugin_env);
|
||||
|
||||
static void pesudo_on_msg_dispatch(int topic_id, const void *msg, on_msg_cb_func* on_msg_cb, void *sub_plugin_env)
|
||||
static void pesudo_on_msg_dispatch(int topic_id, const void *msg, on_msg_cb_func* on_msg_cb, void *dispatch_arg, void *sub_plugin_env)
|
||||
{
|
||||
on_session_msg_cb_func *session_cb = (on_session_msg_cb_func *)on_msg_cb;
|
||||
struct session *sess=(struct session *)msg;
|
||||
@@ -904,7 +904,7 @@ static void pesudo_session_load(struct stellar *st, struct session_manager_plugi
|
||||
env->sess[i].session_exdat_rt=session_exdata_runtime_new(st);
|
||||
env->sess[i].type=SESSION_TYPE_TCP;
|
||||
}
|
||||
env->intrinsc_tcp_input_topic_id=stellar_mq_create_topic(st, TOPIC_TCP, pesudo_on_msg_dispatch, NULL, env);
|
||||
env->intrinsc_tcp_input_topic_id=stellar_mq_create_topic(st, TOPIC_TCP, pesudo_on_msg_dispatch, NULL, NULL, env);
|
||||
|
||||
env->session_manager_plugin_id=stellar_plugin_register(st, pesudo_on_packet_input, pesudo_on_packet_output, env);
|
||||
}
|
||||
@@ -922,7 +922,7 @@ static int pesudo_tcp_session_subscribe(struct stellar *st, on_session_msg_cb_fu
|
||||
int topic_id=stellar_mq_get_topic_id(st, TOPIC_TCP);
|
||||
if(topic_id<0)
|
||||
{
|
||||
topic_id=stellar_mq_create_topic(st, TOPIC_TCP, pesudo_on_msg_dispatch, NULL, NULL);
|
||||
topic_id=stellar_mq_create_topic(st, TOPIC_TCP, pesudo_on_msg_dispatch, NULL, NULL, NULL);
|
||||
}
|
||||
return stellar_mq_subscribe(st, topic_id, (on_msg_cb_func *)on_session_cb, plugin_id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user