summaryrefslogtreecommitdiff
path: root/test/dns_decoder_perf_dummy.cpp
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2024-06-19 01:59:53 +0000
committerliuxueli <[email protected]>2024-06-19 01:59:53 +0000
commitbfc54a6289d798528303d1923d4c74f3cee84218 (patch)
treee15fa29ec64a39a9d746dbf4993982df0b06aaca /test/dns_decoder_perf_dummy.cpp
parent3ceb02698316b2ad5f7570b30c6f180d0d7fd603 (diff)
Feature: performance test case
Diffstat (limited to 'test/dns_decoder_perf_dummy.cpp')
-rw-r--r--test/dns_decoder_perf_dummy.cpp71
1 files changed, 66 insertions, 5 deletions
diff --git a/test/dns_decoder_perf_dummy.cpp b/test/dns_decoder_perf_dummy.cpp
index dc498d2..3da2ab1 100644
--- a/test/dns_decoder_perf_dummy.cpp
+++ b/test/dns_decoder_perf_dummy.cpp
@@ -32,6 +32,9 @@ struct stellar
{
int topic_idx;
int plugin_idx;
+ int worker_thread_num;
+ int udp_topic_id;
+ int tcp_steam_topic_id;
struct message_topic topic[MAX_MESSGEA_TOPIC_NUM];
struct stellar_plugin plugin[MAX_STELLAR_PLUGIN_NUM];
};
@@ -44,6 +47,9 @@ struct session
struct message_topic *topic;
struct stellar_plugin *plugin;
struct stellar_packet *curr_msg;
+ struct session_addr addr;
+ char *readable_addr;
+ enum session_addr_type addr_type;
};
const char *session_get0_current_payload(struct session *ss, size_t *payload_sz)
@@ -98,6 +104,11 @@ int session_mq_publish_message(struct session *ss, int topic_id, void *msg)
ss->topic[topic_id].plugin_on_msg_cb[i](ss, topic_id, msg, ss->plugin[plugin_id].per_session_ctx, ss->plugin[plugin_id].plugin_env);
}
+ if(ss->topic[topic_id].msg_free_cb!=NULL)
+ {
+ ss->topic[topic_id].msg_free_cb(ss, msg, ss->topic[topic_id].msg_free_arg);
+ }
+
return 0;
}
@@ -116,6 +127,11 @@ int session_mq_publish_message_by_name(struct session *ss, const char *topic_nam
return 0;
}
+int stellar_session_mq_destroy_topic(struct stellar *st, int topic_id)
+{
+ return 0;
+}
+
int stellar_session_plugin_register(struct stellar *st, session_ctx_new_func session_ctx_new, session_ctx_free_func session_ctx_free, void *plugin_env)
{
int plugin_id=st->plugin_idx++;
@@ -126,10 +142,13 @@ int stellar_session_plugin_register(struct stellar *st, session_ctx_new_func ses
return plugin_id;
}
-struct session *stellar_session_new(struct stellar *st, int tid)
+struct session *stellar_session_new(struct stellar *st, struct stellar_packet *cur_pkt, int tid)
{
struct session *ss=(struct session *)malloc(sizeof(struct session));
ss->tid=tid;
+ ss->addr_type=cur_pkt->addr_type;
+ ss->readable_addr=cur_pkt->readable_addr;
+ memcpy(&(ss->addr), &(cur_pkt->addr), sizeof(struct session_addr));
ss->plugin=st->plugin;
ss->plugin_idx=st->plugin_idx;
@@ -137,14 +156,47 @@ struct session *stellar_session_new(struct stellar *st, int tid)
ss->topic=st->topic;
ss->topic_idx=st->topic_idx;
- for(int i=0; i<st->plugin_idx; i++)
+ for(int i=0; i<ss->plugin_idx; i++)
{
- st->plugin[i].per_session_ctx=st->plugin[i].session_ctx_new(ss, st->plugin[i].plugin_env);
+ ss->plugin[i].per_session_ctx=ss->plugin[i].session_ctx_new(ss, ss->plugin[i].plugin_env);
}
return ss;
}
+int session_get_current_thread_id(struct session *ss)
+{
+ return ss->tid;
+}
+
+struct session_addr *session_get0_addr(struct session *ss, enum session_addr_type *addr_type)
+{
+ *addr_type=ss->addr_type;
+ return &(ss->addr);
+}
+
+
+void stellar_session_plugin_dettach_current_session(struct session *ss)
+{
+
+}
+
+int session_is_innermost(struct session *ss, uint64_t *flag)
+{
+ *flag=0;
+ return 1;
+}
+
+enum session_state session_get_current_state(struct session *ss)
+{
+ return SESSION_STATE_ACTIVE;
+}
+
+const char *session_get0_readable_addr(struct session *ss)
+{
+ return ss->readable_addr;
+}
+
void stellar_session_free(struct session *ss)
{
for(int i=0; i<ss->plugin_idx; i++)
@@ -155,12 +207,21 @@ void stellar_session_free(struct session *ss)
free(ss);
}
-
struct stellar *stellar_init(int worker_thread_num)
{
struct stellar *st=(struct stellar *)malloc(sizeof(struct stellar));
st->topic_idx=0;
st->plugin_idx=0;
+ st->worker_thread_num=worker_thread_num;
+
+ st->udp_topic_id=stellar_session_mq_create_topic(st, TOPIC_UDP, NULL, NULL);
+ st->tcp_steam_topic_id=stellar_session_mq_create_topic(st, TOPIC_TCP_STREAM, NULL, NULL);
return st;
-} \ No newline at end of file
+}
+
+int stellar_get_worker_thread_num(struct stellar *st)
+{
+ return st->worker_thread_num;
+}
+