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

#include <GElementManager.h>

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

Protected Member Functions

 GElementManager ()=default
 
 ~GElementManager () override
 
 CGRAPH_NO_ALLOWED_COPY (GElementManager)
 
CStatus init () final
 
CStatus run () final
 
CStatus destroy () final
 
CStatus add (GElementPtr element) final
 
CStatus remove (GElementPtr element) final
 
CBool find (GElementPtr element) const final
 
CStatus clear () final
 
GElementManagersetEngineType (GEngineType engineType)
 
CStatus initEngine ()
 
GElementManagersetThreadPool (UThreadPoolPtr ptr)
 
CSize calcMaxParaSize ()
 
CBool checkSerializable ()
 
CSize trim ()
 
CStatus process (const GSortedGElementPtrSet &elements)
 
- Protected Member Functions inherited from GraphManager< GElement >
virtual CStatus add (GElement *object)
 
virtual CStatus remove (GElement *object)
 
virtual CBool find (GElement *object) const
 
virtual CStatus create (const std::string &key)
 
virtual GElementget (const std::string &key)
 
virtual CStatus reset ()
 
virtual CSize getSize () const
 
CStatus run () override
 

Private Attributes

GSortedGElementPtrSet manager_elements_
 
GEnginePtr engine_ { nullptr }
 
GEngineType engine_type_ { GEngineType::DYNAMIC }
 
UThreadPoolPtr thread_pool_ { nullptr }
 

Friends

class GPipeline
 
class GRegion
 
class GMutable
 
class GPerf
 
class CAllocator
 

Additional Inherited Members

- Public Member Functions inherited from CObject
 CObject ()=default
 
virtual ~CObject ()=default
 

Constructor & Destructor Documentation

◆ GElementManager()

GElementManager::GElementManager ( )
explicitprotecteddefault

◆ ~GElementManager()

CGRAPH_NAMESPACE_BEGIN GElementManager::~GElementManager ( )
overrideprotected

manager中的节点,在析构的时候不需要释放。 所有的节点信息在GPipeLine类中统一申请和释放

Member Function Documentation

◆ add()

CStatus GElementManager::add ( GElementPtr  element)
finalprotected

添加一个元素信息

Parameters
element
Returns

◆ calcMaxParaSize()

CSize GElementManager::calcMaxParaSize ( )
protected

获取最大的并发数

Returns
Here is the call graph for this function:

◆ CGRAPH_NO_ALLOWED_COPY()

GElementManager::CGRAPH_NO_ALLOWED_COPY ( GElementManager  )
protected

◆ checkSerializable()

CBool GElementManager::checkSerializable ( )
protected

查看是否可以串行执行

Returns

判定思路:

  1. 内部的element,均为可串行执行的
  2. 当前element,不超过1个前驱或者后继
  3. 有且仅有一个起点,一个终点
  4. 有超时逻辑

◆ clear()

CStatus GElementManager::clear ( )
finalprotectedvirtual

清空信息

Returns

Implements GraphManager< GElement >.

◆ destroy()

CStatus GElementManager::destroy ( )
finalprotectedvirtual

释放函数

Reimplemented from CObject.

◆ find()

CBool GElementManager::find ( GElementPtr  element) const
finalprotected

查找传入元素

Parameters
element
Returns

◆ init()

CStatus GElementManager::init ( )
finalprotectedvirtual

初始化函数

首先判定,注册的element全部不为空

Reimplemented from CObject.

Here is the call graph for this function:

◆ initEngine()

CStatus GElementManager::initEngine ( )
protected

构造执行引擎

Parameters
strategy
Returns
Here is the call graph for this function:

◆ process()

CStatus GElementManager::process ( const GSortedGElementPtrSet elements)
protected

加入数据,并且执行

Parameters
elements
Returns
Here is the call graph for this function:

◆ remove()

CStatus GElementManager::remove ( GElementPtr  element)
finalprotected

删除传入元素

Parameters
element

◆ run()

CStatus GElementManager::run ( )
finalprotectedvirtual

流程处理函数

Implements CObject.

Here is the call graph for this function:

◆ setEngineType()

GElementManagerPtr GElementManager::setEngineType ( GEngineType  engineType)
protected

设置图引擎运行模式

Parameters
engineType
Returns

◆ setThreadPool()

GElementManagerPtr GElementManager::setThreadPool ( UThreadPoolPtr  ptr)
protected

设置线程池

Parameters
ptr
Returns

◆ trim()

CSize GElementManager::trim ( )
protected

剪裁多余的连边信息

Returns
Here is the call graph for this function:

Friends And Related Function Documentation

◆ CAllocator

friend class CAllocator
friend

◆ GMutable

friend class GMutable
friend

◆ GPerf

friend class GPerf
friend

◆ GPipeline

friend class GPipeline
friend

◆ GRegion

friend class GRegion
friend

Member Data Documentation

◆ engine_

GEnginePtr GElementManager::engine_ { nullptr }
private

◆ engine_type_

GEngineType GElementManager::engine_type_ { GEngineType::DYNAMIC }
private

◆ manager_elements_

GSortedGElementPtrSet GElementManager::manager_elements_
private

◆ thread_pool_

UThreadPoolPtr GElementManager::thread_pool_ { nullptr }
private

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