CGraph
Public Member Functions | Protected Member Functions | Private Attributes | Friends | List of all members
GParamManager Class Reference

#include <GParamManager.h>

Inheritance diagram for GParamManager:
Inheritance graph
[legend]
Collaboration diagram for GParamManager:
Collaboration graph
[legend]

Public Member Functions

template<typename T , c_enable_if_t< std::is_base_of< GParam, T >::value, int > = 0>
CStatus create (const std::string &key, CBool backtrace=false)
 
template<typename T , c_enable_if_t< std::is_base_of< GParam, T >::value, int > = 0>
T * get (const std::string &key)
 
CStatus removeByKey (const std::string &key)
 
std::vector< std::string > getKeys ()
 
template<typename T , c_enable_if_t< std::is_base_of< GParam, T >::value, int > >
CGRAPH_NAMESPACE_BEGIN CStatus create (const std::string &key, CBool backtrace)
 
- Public Member Functions inherited from CObject
 CObject ()=default
 
virtual ~CObject ()=default
 

Protected Member Functions

 GParamManager ()
 
 ~GParamManager () override
 
CStatus init () final
 
CStatus destroy () final
 
CStatus clear () final
 
CStatus setup ()
 
CVoid resetWithStatus (const CStatus &curStatus)
 
- Protected Member Functions inherited from GParamObject
CStatus run () final
 
- Protected Member Functions inherited from GraphManager< GParam >
virtual CStatus add (GParam *object)
 
virtual CStatus remove (GParam *object)
 
virtual CBool find (GParam *object) const
 
virtual CStatus create (const std::string &key)
 
virtual CStatus reset ()
 
virtual CSize getSize () const
 
CStatus run () override
 

Private Attributes

std::unordered_map< std::string, GParamPtrparams_map_
 
std::mutex mutex_
 

Friends

class GPipeline
 
class CAllocator
 

Constructor & Destructor Documentation

◆ GParamManager()

CGRAPH_NAMESPACE_BEGIN GParamManager::GParamManager ( )
explicitprotected
Here is the call graph for this function:

◆ ~GParamManager()

GParamManager::~GParamManager ( )
overrideprotected
Here is the call graph for this function:

Member Function Documentation

◆ clear()

CStatus GParamManager::clear ( )
finalprotectedvirtual

清空所有object,必须实现的内容

Returns

Implements GraphManager< GParam >.

◆ create() [1/2]

template<typename T , c_enable_if_t< std::is_base_of< GParam, T >::value, int > >
CGRAPH_NAMESPACE_BEGIN CStatus GParamManager::create ( const std::string &  key,
CBool  backtrace 
)

◆ create() [2/2]

template<typename T , c_enable_if_t< std::is_base_of< GParam, T >::value, int > = 0>
CStatus GParamManager::create ( const std::string &  key,
CBool  backtrace = false 
)

创建一个特定类型的参数

Template Parameters
T
Parameters
key
backtrace是否开启记录调用链路功能
Returns

◆ destroy()

CStatus GParamManager::destroy ( )
finalprotectedvirtual

释放函数

Reimplemented from CObject.

◆ get()

template<typename T , c_enable_if_t< std::is_base_of< GParam, T >::value, int > >
T * GParamManager::get ( const std::string &  key)
virtual

获取一个特定类型的参数

Template Parameters
T
Parameters
key
Returns

实测比 return dynamic_cast<T *>(iter->second); 快很多 dynamic_cast<T *> : 当前方案,耗时比约为 10:3

Reimplemented from GraphManager< GParam >.

◆ getKeys()

std::vector< std::string > GParamManager::getKeys ( )

获取所有的 GParam keys 信息

Returns

◆ init()

CStatus GParamManager::init ( )
finalprotectedvirtual

初始化函数

一般情况下,是不需要init的。需要注意init 和 setup的执行阶段的信息 init() 是在pipeline init的时候被执行的 setup() 是在pipeline run开始的时候被执行的

Reimplemented from CObject.

◆ removeByKey()

CStatus GParamManager::removeByKey ( const std::string &  key)

删除特定的param信息

Parameters
key
Returns

◆ resetWithStatus()

CVoid GParamManager::resetWithStatus ( const CStatus curStatus)
protected

重置所有的GParam信息

Parameters
curStatus
Returns

◆ setup()

CStatus GParamManager::setup ( )
protected

初始化所有的参数信息

Returns

Friends And Related Function Documentation

◆ CAllocator

friend class CAllocator
friend

◆ GPipeline

friend class GPipeline
friend

Member Data Documentation

◆ mutex_

std::mutex GParamManager::mutex_
private

◆ params_map_

std::unordered_map<std::string, GParamPtr> GParamManager::params_map_
private

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