24 namespace perception {
27 template <
class ObjectType>
38 virtual std::shared_ptr<ObjectType>
Get() = 0;
43 std::vector<std::shared_ptr<ObjectType>>* data) = 0;
48 virtual void BatchGet(
size_t num,
bool is_front,
49 std::list<std::shared_ptr<ObjectType>>* data) = 0;
54 virtual void BatchGet(
size_t num,
bool is_front,
55 std::deque<std::shared_ptr<ObjectType>>* data) = 0;
70 template <
class ObjectType>
79 std::shared_ptr<ObjectType>
Get()
override {
80 return std::shared_ptr<ObjectType>(
new ObjectType);
86 std::vector<std::shared_ptr<ObjectType>>* data)
override {
87 for (
size_t i = 0; i < num; ++i) {
88 data->emplace_back(std::shared_ptr<ObjectType>(
new ObjectType));
96 std::list<std::shared_ptr<ObjectType>>* data)
override {
97 for (
size_t i = 0; i < num; ++i) {
99 ? data->emplace_front(std::shared_ptr<ObjectType>(
new ObjectType))
100 : data->emplace_back(std::shared_ptr<ObjectType>(
new ObjectType));
108 std::deque<std::shared_ptr<ObjectType>>* data)
override {
109 for (
size_t i = 0; i < num; ++i) {
111 ? data->emplace_front(std::shared_ptr<ObjectType>(
new ObjectType))
112 : data->emplace_back(std::shared_ptr<ObjectType>(
new ObjectType));
virtual void set_capacity(size_t capacity)
Definition: object_pool.h:57
void BatchGet(size_t num, std::vector< std::shared_ptr< ObjectType >> *data) override
Definition: object_pool.h:85
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
virtual void BatchGet(size_t num, std::vector< std::shared_ptr< ObjectType >> *data)=0
virtual size_t RemainedNum()
Definition: object_pool.h:61
void BatchGet(size_t num, bool is_front, std::list< std::shared_ptr< ObjectType >> *data) override
Definition: object_pool.h:95
size_t get_capacity()
Definition: object_pool.h:59
BaseObjectPool & operator=(const BaseObjectPool &rhs)=delete
virtual ~BaseObjectPool()=default
size_t capacity_
Definition: object_pool.h:66
Definition: object_pool.h:71
std::shared_ptr< ObjectType > Get() override
Definition: object_pool.h:79
Definition: object_pool.h:28
void BatchGet(size_t num, bool is_front, std::deque< std::shared_ptr< ObjectType >> *data) override
Definition: object_pool.h:107
ObjectType
Definition: object_types.h:26
virtual std::shared_ptr< ObjectType > Get()=0
static DummyObjectPool & Instance()
Definition: object_pool.h:74