CGraph
Public Member Functions | Private Attributes | List of all members
GPipelineManager Class Reference

#include <GPipelineManager.h>

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

Public Member Functions

CStatus init () final
 
CStatus run () final
 
CStatus destroy () final
 
CStatus add (GPipelinePtr ptr) final
 
CStatus clear () final
 
CBool find (GPipelinePtr ptr) const final
 
CStatus remove (GPipelinePtr ptr) final
 
CSize getSize () const final
 
 ~GPipelineManager () override
 
GPipelinePtr fetch ()
 
CStatus release (GPipelinePtr ptr)
 
- Public Member Functions inherited from CObject
 CObject ()=default
 
virtual ~CObject ()=default
 

Private Attributes

GPipelinePtrList free_list_
 
GPipelinePtrList used_list_
 
std::mutex mutex_
 

Additional Inherited Members

- Protected Member Functions inherited from GraphManager< GPipeline >
virtual CStatus add (GPipeline *object)
 
virtual CStatus remove (GPipeline *object)
 
virtual CBool find (GPipeline *object) const
 
virtual CStatus create (const std::string &key)
 
virtual GPipelineget (const std::string &key)
 
virtual CStatus reset ()
 
CStatus run () override
 
- Protected Attributes inherited from GPipelineObject
CBool is_init_ = false
 

Constructor & Destructor Documentation

◆ ~GPipelineManager()

GPipelineManager::~GPipelineManager ( )
override
Here is the call graph for this function:

Member Function Documentation

◆ add()

CStatus GPipelineManager::add ( GPipelinePtr  ptr)
final

◆ clear()

CStatus GPipelineManager::clear ( )
finalvirtual

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

Returns

这里只是清空list中的信息,并不真正销毁 pipeline对象 因为pipeline 对象统一在 Factory中管控

Implements GraphManager< GPipeline >.

◆ destroy()

CStatus GPipelineManager::destroy ( )
finalvirtual

释放函数

Reimplemented from CObject.

◆ fetch()

GPipelinePtr GPipelineManager::fetch ( )

获取一个可以运行的pipeline信息 没有可用的话,则返回 nullptr

Returns

◆ find()

CBool GPipelineManager::find ( GPipelinePtr  ptr) const
final

如果在其中一个位置,找到了,就返回 true了 非线程安全,建议 init 之前使用

◆ getSize()

CSize GPipelineManager::getSize ( ) const
finalvirtual

获取大小信息

Returns

Reimplemented from GraphManager< GPipeline >.

◆ init()

CGRAPH_NAMESPACE_BEGIN CStatus GPipelineManager::init ( )
finalvirtual

初始化函数

Reimplemented from CObject.

◆ release()

CStatus GPipelineManager::release ( GPipelinePtr  ptr)

释放一个pipeline信息,重新放回 free list 中去

Parameters
ptr
Returns

◆ remove()

CStatus GPipelineManager::remove ( GPipelinePtr  ptr)
final

◆ run()

CStatus GPipelineManager::run ( )
finalvirtual

流程处理函数

这里执行,是外部线程执行的。获取的status就是这个pipeline run的结果 无论如何,执行完成之后,都要将pipeline返回到 free_list 中去

Implements CObject.

Here is the call graph for this function:

Member Data Documentation

◆ free_list_

GPipelinePtrList GPipelineManager::free_list_
private

◆ mutex_

std::mutex GPipelineManager::mutex_
private

◆ used_list_

GPipelinePtrList GPipelineManager::used_list_
private

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