diff --git a/inc/hgl/type/ActiveMemoryBlockManager.h b/inc/hgl/type/ActiveMemoryBlockManager.h index 0bce2a1..fb5c555 100644 --- a/inc/hgl/type/ActiveMemoryBlockManager.h +++ b/inc/hgl/type/ActiveMemoryBlockManager.h @@ -42,6 +42,8 @@ namespace hgl int WriteDataArray (void **da,const int *idp,const int count); int WriteDataArray (void *da,const int *idp,const int count)const; + void *GetData(const int id)const; + bool GetData(void *,const int id)const; bool GetData(void **da,const int *idp,const int count)const; ///<根据ID获取数据 bool GetData(void *da,const int *idp,const int count)const; ///<根据ID获取数据,并整齐排列到一起 diff --git a/src/Type/ActiveMemoryBlockManager.cpp b/src/Type/ActiveMemoryBlockManager.cpp index ab2393f..179d696 100644 --- a/src/Type/ActiveMemoryBlockManager.cpp +++ b/src/Type/ActiveMemoryBlockManager.cpp @@ -86,6 +86,14 @@ namespace hgl return(result); } + + void *ActiveMemoryBlockManager::GetData(const int id)const + { + if(!id||id<0||id>=aim.GetHistoryMaxId()) + return(nullptr); + + return (uint8 *)(data_mb->Get())+id*unit_size; + } bool ActiveMemoryBlockManager::GetData(void *da,const int id)const {