CGraph
Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
GEngine Class Referenceabstract

CGraph的核心引擎,提供setup/link/getTopo/isDag等核心能力 More...

#include <GEngine.h>

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

Protected Member Functions

 GEngine ()=default
 
virtual CStatus setup (const GSortedGElementPtrSet &elements)=0
 
CVoid link (const GSortedGElementPtrSet &elements)
 

Static Protected Member Functions

static GElementPtrArr getTopo (const GSortedGElementPtrSet &elements)
 
static CBool isDag (const GSortedGElementPtrSet &elements)
 

Protected Attributes

UThreadPoolPtr thread_pool_ { nullptr }
 
CSize linked_size_ = 0
 

Friends

class GElementManager
 
class GPipeline
 
class GMutable
 

Additional Inherited Members

- Public Member Functions inherited from CObject
 CObject ()=default
 
virtual CStatus init ()
 
virtual CStatus run ()=0
 
virtual CStatus destroy ()
 
virtual ~CObject ()=default
 

Detailed Description

CGraph的核心引擎,提供setup/link/getTopo/isDag等核心能力

Constructor & Destructor Documentation

◆ GEngine()

GEngine::GEngine ( )
explicitprotecteddefault

Member Function Documentation

◆ getTopo()

static GElementPtrArr GEngine::getTopo ( const GSortedGElementPtrSet elements)
inlinestaticprotected

计算当前elements的 拓扑排序信息

Parameters
elements
Returns

◆ isDag()

static CBool GEngine::isDag ( const GSortedGElementPtrSet elements)
inlinestaticprotected

判断是否是dag的逻辑

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

◆ link()

CVoid GEngine::link ( const GSortedGElementPtrSet elements)
inlineprotected

分析所有的可以设置 linkable 的数据

Parameters
elements
Returns

认定图可以连通的判定条件: 1,当前元素仅有一个后继 2,当前元素的唯一后继,仅有一个前驱 3,前后元素绑定机制是一样的

◆ setup()

virtual CStatus GEngine::setup ( const GSortedGElementPtrSet elements)
protectedpure virtual

将所有注册进入 pipeline的内容,进行分析和解构

Parameters
elements
Returns

Implemented in GTopoEngine, GStaticEngine, and GDynamicEngine.

Friends And Related Function Documentation

◆ GElementManager

friend class GElementManager
friend

◆ GMutable

friend class GMutable
friend

◆ GPipeline

friend class GPipeline
friend

Member Data Documentation

◆ linked_size_

CSize GEngine::linked_size_ = 0
protected

◆ thread_pool_

UThreadPoolPtr GEngine::thread_pool_ { nullptr }
protected

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