From ed3349352112ef56e5748b49163d8a758c46abef Mon Sep 17 00:00:00 2001 From: kailixu Date: Mon, 10 Jun 2024 22:56:44 +0800 Subject: [PATCH] enh: support get msg string and msg number --- include/common/tmsg.h | 3 +++ include/common/tmsgdef.h | 18 ++++++++++++++++++ source/common/src/tmsg.c | 3 +++ source/common/test/CMakeLists.txt | 16 ++++++++-------- source/common/test/tmsgTest.cpp | 15 +++++++++++++++ 5 files changed, 47 insertions(+), 8 deletions(-) diff --git a/include/common/tmsg.h b/include/common/tmsg.h index fa294c3fc5..808ae75c17 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -37,6 +37,7 @@ extern "C" { #define TD_MSG_NUMBER_ #undef TD_MSG_DICT_ #undef TD_MSG_INFO_ +#undef TD_MSG_TYPE_INFO_ #undef TD_MSG_RANGE_CODE_ #undef TD_MSG_SEG_CODE_ #include "tmsgdef.h" @@ -44,6 +45,7 @@ extern "C" { #undef TD_MSG_NUMBER_ #undef TD_MSG_DICT_ #undef TD_MSG_INFO_ +#undef TD_MSG_TYPE_INFO_ #undef TD_MSG_RANGE_CODE_ #define TD_MSG_SEG_CODE_ #include "tmsgdef.h" @@ -51,6 +53,7 @@ extern "C" { #undef TD_MSG_NUMBER_ #undef TD_MSG_DICT_ #undef TD_MSG_INFO_ +#undef TD_MSG_TYPE_INFO_ #undef TD_MSG_SEG_CODE_ #undef TD_MSG_RANGE_CODE_ #include "tmsgdef.h" diff --git a/include/common/tmsgdef.h b/include/common/tmsgdef.h index 6e1980c0af..aff17e5de5 100644 --- a/include/common/tmsgdef.h +++ b/include/common/tmsgdef.h @@ -17,6 +17,7 @@ #if 0 #undef TD_MSG_INFO_ +#undef TD_MSG_TYPE_INFO_ #undef TD_MSG_NUMBER_ #undef TD_MSG_DICT_ #undef TD_MSG_SEG_CODE_ @@ -76,6 +77,23 @@ #define TD_CLOSE_MSG_SEG(TYPE) enum { +#elif defined(TD_MSG_TYPE_INFO_) + + typedef struct { + const char *name; + const char *rspName; + int32_t type; + int32_t rspType; + } SMsgTypeInfo; + + #undef TD_NEW_MSG_SEG + #undef TD_DEF_MSG_TYPE + #undef TD_CLOSE_MSG_SEG + #define TD_NEW_MSG_SEG(TYPE) + #define TD_DEF_MSG_TYPE(TYPE, MSG, REQ, RSP) { #TYPE, #TYPE "_RSP", TYPE, TYPE##_RSP }, + #define TD_CLOSE_MSG_SEG(TYPE) + + SMsgTypeInfo tMsgTypeInfo[] = { #else #undef TD_NEW_MSG_SEG diff --git a/source/common/src/tmsg.c b/source/common/src/tmsg.c index 06fb39f409..dacbd45f2f 100644 --- a/source/common/src/tmsg.c +++ b/source/common/src/tmsg.c @@ -20,11 +20,13 @@ #undef TD_MSG_DICT_ #undef TD_MSG_RANGE_CODE_ #define TD_MSG_INFO_ +#undef TD_MSG_TYPE_INFO_ #undef TD_MSG_SEG_CODE_ #include "tmsgdef.h" #undef TD_MSG_NUMBER_ #undef TD_MSG_INFO_ +#undef TD_MSG_TYPE_INFO_ #undef TD_MSG_RANGE_CODE_ #define TD_MSG_DICT_ #undef TD_MSG_SEG_CODE_ @@ -32,6 +34,7 @@ #undef TD_MSG_NUMBER_ #undef TD_MSG_INFO_ +#undef TD_MSG_TYPE_INFO_ #undef TD_MSG_DICT_ #undef TD_MSG_SEG_CODE_ #define TD_MSG_RANGE_CODE_ diff --git a/source/common/test/CMakeLists.txt b/source/common/test/CMakeLists.txt index 51c733e796..bacc766990 100644 --- a/source/common/test/CMakeLists.txt +++ b/source/common/test/CMakeLists.txt @@ -41,11 +41,11 @@ add_test( ) # tmsg test -# add_executable(tmsgTest "") -# target_sources(tmsgTest -# PRIVATE -# "tmsgTest.cpp" -# "../src/tmsg.c" -# ) -# target_include_directories(tmsgTest PUBLIC "${TD_SOURCE_DIR}/include/common/") -# target_link_libraries(tmsgTest PUBLIC os util gtest gtest_main) \ No newline at end of file +add_executable(tmsgTest "") +target_sources(tmsgTest + PRIVATE + "tmsgTest.cpp" + "../src/tmsg.c" +) +target_include_directories(tmsgTest PUBLIC "${TD_SOURCE_DIR}/include/common/") +target_link_libraries(tmsgTest PUBLIC os util gtest gtest_main) \ No newline at end of file diff --git a/source/common/test/tmsgTest.cpp b/source/common/test/tmsgTest.cpp index e8c3284ea5..58ad1dfdc5 100644 --- a/source/common/test/tmsgTest.cpp +++ b/source/common/test/tmsgTest.cpp @@ -4,8 +4,23 @@ #include "tmsg.h" +#undef TD_MSG_NUMBER_ +#undef TD_MSG_DICT_ +#undef TD_MSG_INFO_ +#define TD_MSG_TYPE_INFO_ +#undef TD_MSG_RANGE_CODE_ +#undef TD_MSG_SEG_CODE_ +#include "tmsgdef.h" + TEST(td_msg_test, simple_msg_test) { // std::cout << TMSG_INFO(TDMT_VND_DROP_TABLE) << std::endl; // std::cout << TMSG_INFO(TDMT_MND_DROP_SUPER_TABLE) << std::endl; // std::cout << TMSG_INFO(TDMT_MND_CREATE_SUPER_TABLE) << std::endl; + + int32_t msgSize = sizeof(tMsgTypeInfo) / sizeof(SMsgTypeInfo); + for (size_t i = 0; i < msgSize; ++i) { + SMsgTypeInfo *pInfo = &tMsgTypeInfo[i]; + std::cout << i * 2 + 1 << " " << pInfo->name << " " << pInfo->type << std::endl; + std::cout << i * 2 + 2 << " " << pInfo->rspName << " " << pInfo->rspType << std::endl; + } } \ No newline at end of file