nndeploy C++ API  0.2.0
nndeploy C++ API
memory_pool.h
Go to the documentation of this file.
1 
2 #ifndef _NNDEPLOY_DEVICE_MEMORY_POOL_H_
3 #define _NNDEPLOY_DEVICE_MEMORY_POOL_H_
4 
5 #include "nndeploy/base/common.h"
7 #include "nndeploy/base/log.h"
8 #include "nndeploy/base/macro.h"
9 #include "nndeploy/base/object.h"
10 #include "nndeploy/base/status.h"
11 #include "nndeploy/device/device.h"
12 #include "nndeploy/device/type.h"
13 
14 namespace nndeploy {
15 namespace device {
16 
17 class Buffer;
18 
20  public:
21  MemoryPool(Device *device, base::MemoryPoolType memory_pool_type);
22  virtual ~MemoryPool();
23 
24  virtual base::Status init();
25  virtual base::Status init(size_t size);
26  virtual base::Status init(void *ptr, size_t size);
27  virtual base::Status init(Buffer *buffer);
28 
29  virtual base::Status deinit() = 0;
30 
31  virtual void *allocate(size_t size) = 0;
32  virtual void *allocate(const BufferDesc &desc) = 0;
33 
34  virtual void deallocate(void *ptr) = 0;
35 
36  virtual void *allocatePinned(size_t size) = 0;
37  virtual void *allocatePinned(const BufferDesc &desc) = 0;
38 
39  virtual void deallocatePinned(void *ptr) = 0;
40 
43 
44  private:
45  Device *device_;
46  base::MemoryPoolType memory_pool_type_;
47 };
48 
49 } // namespace device
50 } // namespace nndeploy
51 
52 #endif
设备抽象基类
Definition: device.h:155
virtual void deallocatePinned(void *ptr)=0
virtual void * allocate(size_t size)=0
virtual base::Status init(Buffer *buffer)
virtual void * allocatePinned(size_t size)=0
virtual base::Status deinit()=0
virtual void * allocatePinned(const BufferDesc &desc)=0
MemoryPool(Device *device, base::MemoryPoolType memory_pool_type)
virtual base::Status init()
virtual base::Status init(void *ptr, size_t size)
base::MemoryPoolType getMemoryPoolType()
virtual base::Status init(size_t size)
virtual void * allocate(const BufferDesc &desc)=0
virtual void deallocate(void *ptr)=0
#define NNDEPLOY_CC_API
api
Definition: macro.h:29