Apollo  6.0
Open source self driving car software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer > Class Template Reference

#include <concurrent_object_pool.h>

Inheritance diagram for apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >:
Inheritance graph
Collaboration diagram for apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >:
Collaboration graph

Public Member Functions

std::shared_ptr< ObjectTypeGet () override
 
void BatchGet (size_t num, std::vector< std::shared_ptr< ObjectType >> *data) override
 
void BatchGet (size_t num, bool is_front, std::list< std::shared_ptr< ObjectType >> *data) override
 
void BatchGet (size_t num, bool is_front, std::deque< std::shared_ptr< ObjectType >> *data) override
 
 ~ConcurrentObjectPool () override
 
- Public Member Functions inherited from apollo::perception::base::BaseObjectPool< ObjectType >
 BaseObjectPool ()=default
 
virtual ~BaseObjectPool ()=default
 
virtual void set_capacity (size_t capacity)
 
size_t get_capacity ()
 
virtual size_t RemainedNum ()
 

Static Public Member Functions

static ConcurrentObjectPoolInstance ()
 

Protected Member Functions

 ConcurrentObjectPool (const size_t default_size)
 
- Protected Member Functions inherited from apollo::perception::base::BaseObjectPool< ObjectType >
 BaseObjectPool (const BaseObjectPool &rhs)=delete
 
BaseObjectPooloperator= (const BaseObjectPool &rhs)=delete
 

Protected Attributes

std::mutex mutex_
 
std::queue< ObjectType * > queue_
 
ObjectTypecache_ = nullptr
 
const size_t kDefaultCacheSize
 
std::list< ObjectType * > extended_cache_
 
- Protected Attributes inherited from apollo::perception::base::BaseObjectPool< ObjectType >
size_t capacity_ = 0
 

Static Protected Attributes

static const Initializer kInitializer
 

Constructor & Destructor Documentation

◆ ~ConcurrentObjectPool()

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::~ConcurrentObjectPool ( )
inlineoverride

◆ ConcurrentObjectPool()

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::ConcurrentObjectPool ( const size_t  default_size)
inlineexplicitprotected

Member Function Documentation

◆ BatchGet() [1/3]

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
void apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::BatchGet ( size_t  num,
std::vector< std::shared_ptr< ObjectType >> *  data 
)
inlineoverridevirtual

◆ BatchGet() [2/3]

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
void apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::BatchGet ( size_t  num,
bool  is_front,
std::list< std::shared_ptr< ObjectType >> *  data 
)
inlineoverridevirtual

◆ BatchGet() [3/3]

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
void apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::BatchGet ( size_t  num,
bool  is_front,
std::deque< std::shared_ptr< ObjectType >> *  data 
)
inlineoverridevirtual

◆ Get()

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
std::shared_ptr<ObjectType> apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::Get ( )
inlineoverridevirtual

◆ Instance()

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
static ConcurrentObjectPool& apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::Instance ( void  )
inlinestatic

Member Data Documentation

◆ cache_

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
ObjectType* apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::cache_ = nullptr
protected

◆ extended_cache_

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
std::list<ObjectType*> apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::extended_cache_
protected

◆ kDefaultCacheSize

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
const size_t apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::kDefaultCacheSize
protected

◆ kInitializer

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
const Initializer apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::kInitializer
staticprotected

◆ mutex_

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
std::mutex apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::mutex_
protected

◆ queue_

template<class ObjectType, size_t N = kPoolDefaultSize, class Initializer = ObjectPoolDefaultInitializer<ObjectType>>
std::queue<ObjectType*> apollo::perception::base::ConcurrentObjectPool< ObjectType, N, Initializer >::queue_
protected

The documentation for this class was generated from the following file: