From bf80f220cb918fd092e1433bcfe3bb84a73c9c1f Mon Sep 17 00:00:00 2001 From: hyzboy Date: Sun, 24 Mar 2024 00:55:23 +0800 Subject: [PATCH] Added StackPoolTest.cpp --- CMakeLists.txt | 3 ++ datatype/StackPoolTest.cpp | 62 ++++++++++++++++++++++++++++++++++++++ datatype/UserInfo.h | 34 ++++++++++++++++----- 3 files changed, 91 insertions(+), 8 deletions(-) create mode 100644 datatype/StackPoolTest.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index a91ef3d..91e1fbd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,9 @@ set_example_project_folder("DataType/DataArray" PoolTest) add_executable(MapTest datatype/MapTest.cpp) set_example_project_folder("DataType/DataArray" MapTest) +add_executable(StackPoolTest datatype/StackPoolTest.cpp) +set_example_project_folder("DataType/DataArray" StackPoolTest) + add_executable(DataBlockTest datatype/DataBlockTest.cpp) set_example_project_folder("DataType/DataArray" DataBlockTest) diff --git a/datatype/StackPoolTest.cpp b/datatype/StackPoolTest.cpp new file mode 100644 index 0000000..99faeb2 --- /dev/null +++ b/datatype/StackPoolTest.cpp @@ -0,0 +1,62 @@ +#include +#include"UserInfo.h" //测试用结构体 +#include +#include + +using namespace hgl; +using namespace std; + +template void out_series_pool(const SeriesPool *sp) +{ + const int free_count=sp->GetFreeCount(); + + cout<<"Series Pool("<GetRawData(); + + for(int i=0;i0)cout<<","; + cout< dsp_userinfo(user_info_array_count); //用户信息数据池 + + #ifdef USE_RANDOM_SERIES_POOL + { + auto *series=dsp_userinfo.GetSeries(); + + series->InitRandomSeries(); + + out_series_pool(series); + } + #endif//USE_RANDOM_SERIES_POOL + + { + UserInfo *tp; + + for(const UserInfo &sp:user_info_array) + { + tp=dsp_userinfo.Acquire(); + + if(!tp) + { + cout<<"Acquire UserInfo Error!"< #include -using namespace std; - struct UserInfo { char name[8]; @@ -45,6 +43,8 @@ static UserInfo user_info_array[]= {"Zack",true,43} }; +constexpr const size_t user_info_array_count=sizeof(user_info_array)/sizeof(UserInfo); + class UserInfoClass { UserInfo info; @@ -57,15 +57,33 @@ public: { memcpy(&info,&ui,sizeof(UserInfo)); - cout<<"UserInfoClass::Set("<name<<","<<(ui->sex?"Male":"Female")<<","<age<<")"<name<<","<<(ui->sex?"Male":"Female")<<","<age<<")"<