diff options
| author | liuxueli <[email protected]> | 2024-06-19 01:59:53 +0000 |
|---|---|---|
| committer | liuxueli <[email protected]> | 2024-06-19 01:59:53 +0000 |
| commit | bfc54a6289d798528303d1923d4c74f3cee84218 (patch) | |
| tree | e15fa29ec64a39a9d746dbf4993982df0b06aaca /test/dns_decoder_perf_dummy.cpp | |
| parent | 3ceb02698316b2ad5f7570b30c6f180d0d7fd603 (diff) | |
Feature: performance test case
Diffstat (limited to 'test/dns_decoder_perf_dummy.cpp')
| -rw-r--r-- | test/dns_decoder_perf_dummy.cpp | 71 |
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; +} + |
