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

#include <GPipeline.h>

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

Public Member Functions

CStatus init () override
 
CStatus run () override
 
CStatus destroy () override
 
CStatus process (CSize runTimes=CGRAPH_DEFAULT_LOOP_TIMES)
 
std::future< CStatusasyncRun (std::launch policy=std::launch::async)
 
std::future< CStatusasyncProcess (CSize runTimes=CGRAPH_DEFAULT_LOOP_TIMES, std::launch policy=std::launch::async)
 
CStatus cancel ()
 
CStatus yield ()
 
CStatus resume ()
 
CStatus dump (std::ostream &oss=std::cout)
 
CStatus perf (std::ostream &oss=std::cout)
 
template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GNode, TNode >::value, int > = 0>
TNode * createGNode (const GNodeInfo &info, Args &&... args)
 
template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GNode, TNode >::value, int > = 0>
TNode * createGNode (const GElementPtrSet &dependence=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES, Args &&... args)
 
template<typename TGroup , c_enable_if_t< std::is_base_of< GGroup, TGroup >::value, int > = 0>
TGroup * createGGroup (const GElementPtrArr &elements, const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
template<typename T , c_enable_if_t< std::is_base_of< GElement, T >::value, int > = 0>
CStatus registerGElement (GElementPPtr elementRef, const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateNode< Args ... >, TNode >::value, int > = 0>
CStatus registerGElement (GTemplateNodePtr< Args ... > *elementRef, const GElementPtrSet &depends, Args... args)
 
template<typename TNode , c_enable_if_t< std::is_base_of< GNode, TNode >::value, int > = 0>
TNode * registerGNode (const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateNode< Args ... >, TNode >::value, int > = 0>
TNode * registerGNode (const GElementPtrSet &depends, Args... args)
 
CStatus registerGNode (GElementPPtr nodeRef, const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
CStatus registerGGroup (GElementPPtr groupRef, const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
template<typename GFunction >
CStatus registerGElement (GFunctionPPtr functionRef, const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
template<typename GFence >
CStatus registerGElement (GFencePPtr fenceRef, const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
template<typename GCoordinator , CInt SIZE>
CStatus registerGElement (GCoordinatorPPtr< SIZE > coordinatorRef, const GElementPtrSet &depends=std::initializer_list< GElementPtr >(), const std::string &name=CGRAPH_EMPTY, CSize loop=CGRAPH_DEFAULT_LOOP_TIMES)
 
template<typename TAspect , typename TParam = GAspectDefaultParam, c_enable_if_t< std::is_base_of< GAspect, TAspect >::value, int > = 0, c_enable_if_t< std::is_base_of< GAspectParam, TParam >::value, int > = 0>
GPipelineaddGAspect (const GElementPtrSet &elements=std::initializer_list< GElementPtr >(), TParam *param=nullptr)
 
template<typename TDaemon , typename TParam = GDaemonDefaultParam, c_enable_if_t< std::is_base_of< GDaemon, TDaemon >::value, int > = 0, c_enable_if_t< std::is_base_of< GDaemonParam, TParam >::value, int > = 0>
GPipelineaddGDaemon (CMSec ms, TParam *param=nullptr)
 
template<typename TDaemon , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateDaemon< Args... >, TDaemon >::value, int > = 0>
GPipelineaddGDaemon (CMSec ms, Args &&... args)
 
template<typename TEvent , typename TParam = GEventDefaultParam, c_enable_if_t< std::is_base_of< GEvent, TEvent >::value, int > = 0, c_enable_if_t< std::is_base_of< GEventParam, TParam >::value, int > = 0>
GPipelineaddGEvent (const std::string &key, TParam *param=nullptr)
 
GPipelineaddGStage (const std::string &key, CInt threshold)
 
GPipelinesetGEngineType (GEngineType type)
 
GPipelinesetUniqueThreadPoolConfig (const UThreadPoolConfig &config)
 
GPipelinesetSharedThreadPool (UThreadPoolPtr ptr)
 
CSize getMaxPara ()
 
CSize trim ()
 
CStatus makeSerial ()
 
GPipelineState getCurState () const
 
CBool checkSeparate (GElementPtr fst, GElementPtr snd) const
 
template<typename T , c_enable_if_t< std::is_base_of< GElement, T >::value, int > >
CGRAPH_NAMESPACE_BEGIN CStatus registerGElement (GElementPPtr elementRef, const GElementPtrSet &depends, const std::string &name, CSize loop)
 
template<typename TAspect , typename TParam , c_enable_if_t< std::is_base_of< GAspect, TAspect >::value, int > , c_enable_if_t< std::is_base_of< GAspectParam, TParam >::value, int > >
GPipelinePtr addGAspect (const GElementPtrSet &elements, TParam *param)
 
template<typename TDaemon , typename TParam , c_enable_if_t< std::is_base_of< GDaemon, TDaemon >::value, int > , c_enable_if_t< std::is_base_of< GDaemonParam, TParam >::value, int > >
GPipelinePtr addGDaemon (CMSec ms, TParam *param)
 
template<typename TDaemon , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateDaemon< Args... >, TDaemon >::value, int > >
GPipelinePtr addGDaemon (CMSec ms, Args &&... args)
 
template<typename TEvent , typename TParam , c_enable_if_t< std::is_base_of< GEvent, TEvent >::value, int > , c_enable_if_t< std::is_base_of< GEventParam, TParam >::value, int > >
GPipelinePtr addGEvent (const std::string &key, TParam *param)
 
- Public Member Functions inherited from CObject
 CObject ()=default
 
virtual ~CObject ()=default
 
- Public Member Functions inherited from CDescInfo
virtual const std::string & getName () const
 
const std::string & getSession () const
 
const std::string & getDescription () const
 
virtual auto setName (const std::string &name) -> decltype(this)
 
virtual auto setDescription (const std::string &description) -> decltype(this)
 
virtual ~CDescInfo ()=default
 

Protected Member Functions

 GPipeline ()
 
 ~GPipeline () override
 

Private Member Functions

CStatus initEnv ()
 
CStatus innerRegister (GElementPtr element, const GElementPtrSet &depends, const std::string &name, CSize loop)
 

Private Attributes

GElementManagerPtr element_manager_ = nullptr
 
GParamManagerPtr param_manager_ = nullptr
 
GDaemonManagerPtr daemon_manager_ = nullptr
 
GEventManagerPtr event_manager_ = nullptr
 
GStageManagerPtr stage_manager_ = nullptr
 
GSchedule schedule_
 
GElementRepository repository_
 

Friends

class GPipelineFactory
 
class CAllocator
 
class GPerf
 

Additional Inherited Members

- Protected Attributes inherited from GPipelineObject
CBool is_init_ = false
 
- Protected Attributes inherited from CDescInfo
std::string name_
 
std::string session_
 
std::string description_
 

Constructor & Destructor Documentation

◆ GPipeline()

CGRAPH_NAMESPACE_BEGIN GPipeline::GPipeline ( )
explicitprotected

注册GParam 交互类集合

Returns
Here is the call graph for this function:

◆ ~GPipeline()

GPipeline::~GPipeline ( )
overrideprotected

Member Function Documentation

◆ addGAspect() [1/2]

template<typename TAspect , typename TParam , c_enable_if_t< std::is_base_of< GAspect, TAspect >::value, int > , c_enable_if_t< std::is_base_of< GAspectParam, TParam >::value, int > >
GPipelinePtr GPipeline::addGAspect ( const GElementPtrSet elements,
TParam *  param 
)
Here is the call graph for this function:

◆ addGAspect() [2/2]

template<typename TAspect , typename TParam = GAspectDefaultParam, c_enable_if_t< std::is_base_of< GAspect, TAspect >::value, int > = 0, c_enable_if_t< std::is_base_of< GAspectParam, TParam >::value, int > = 0>
GPipeline* GPipeline::addGAspect ( const GElementPtrSet elements = std::initializer_list< GElementPtr >(),
TParam *  param = nullptr 
)

添加切面

Template Parameters
TAspect
TParam
Parameters
elements
param
Returns

◆ addGDaemon() [1/4]

template<typename TDaemon , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateDaemon< Args... >, TDaemon >::value, int > = 0>
GPipeline* GPipeline::addGDaemon ( CMSec  ms,
Args &&...  args 
)

添加模板类型守护

Template Parameters
TAspect
Args
Parameters
ms
args
Returns

◆ addGDaemon() [2/4]

template<typename TDaemon , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateDaemon< Args... >, TDaemon >::value, int > >
GPipelinePtr GPipeline::addGDaemon ( CMSec  ms,
Args &&...  args 
)
Here is the call graph for this function:

◆ addGDaemon() [3/4]

template<typename TDaemon , typename TParam , c_enable_if_t< std::is_base_of< GDaemon, TDaemon >::value, int > , c_enable_if_t< std::is_base_of< GDaemonParam, TParam >::value, int > >
GPipelinePtr GPipeline::addGDaemon ( CMSec  ms,
TParam *  param 
)
Here is the call graph for this function:

◆ addGDaemon() [4/4]

template<typename TDaemon , typename TParam = GDaemonDefaultParam, c_enable_if_t< std::is_base_of< GDaemon, TDaemon >::value, int > = 0, c_enable_if_t< std::is_base_of< GDaemonParam, TParam >::value, int > = 0>
GPipeline* GPipeline::addGDaemon ( CMSec  ms,
TParam *  param = nullptr 
)

添加守护

Template Parameters
TDaemon
TParam
Parameters
ms
param
Returns

◆ addGEvent() [1/2]

template<typename TEvent , typename TParam , c_enable_if_t< std::is_base_of< GEvent, TEvent >::value, int > , c_enable_if_t< std::is_base_of< GEventParam, TParam >::value, int > >
GPipelinePtr GPipeline::addGEvent ( const std::string &  key,
TParam *  param 
)
Here is the call graph for this function:

◆ addGEvent() [2/2]

template<typename TEvent , typename TParam = GEventDefaultParam, c_enable_if_t< std::is_base_of< GEvent, TEvent >::value, int > = 0, c_enable_if_t< std::is_base_of< GEventParam, TParam >::value, int > = 0>
GPipeline* GPipeline::addGEvent ( const std::string &  key,
TParam *  param = nullptr 
)

添加一个事件

Template Parameters
TEvent
TParam
Parameters
key
param
Returns

◆ addGStage()

GPipelinePtr GPipeline::addGStage ( const std::string &  key,
CInt  threshold 
)

添加一个阶段

Parameters
key
threshold
Returns
Here is the call graph for this function:

◆ asyncProcess()

std::future< CStatus > GPipeline::asyncProcess ( CSize  runTimes = CGRAPH_DEFAULT_LOOP_TIMES,
std::launch  policy = std::launch::async 
)

异步执行pipeline的全部流程

Parameters
runTimes
policy
Returns
Here is the call graph for this function:

◆ asyncRun()

std::future< CStatus > GPipeline::asyncRun ( std::launch  policy = std::launch::async)

异步执行pipeline的run流程

Parameters
policy
Returns
  1. 确认当前pipeline已经初始化完毕
  2. 异步的执行 run() 方法,并且返回执行结果的 future 信息
Here is the call graph for this function:

◆ cancel()

CStatus GPipeline::cancel ( )

停止执行流程,多用于异步执行流程中

Returns
Here is the call graph for this function:

◆ checkSeparate()

CBool GPipeline::checkSeparate ( GElementPtr  fst,
GElementPtr  snd 
) const

判断两个element,是否有依赖关系

Parameters
fst
snd
Returns
@notice 如果返回 true,则表示不可能并发执行;否则表示可能并发执行
Here is the call graph for this function:

◆ createGGroup()

template<typename TGroup , c_enable_if_t< std::is_base_of< GGroup, TGroup >::value, int > >
TGroup * GPipeline::createGGroup ( const GElementPtrArr elements,
const GElementPtrSet depends = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

根据传入的信息,创建Group信息

Template Parameters
T
Parameters
elements
depends
name
loop
Returns
Here is the call graph for this function:

◆ createGNode() [1/2]

template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GNode, TNode >::value, int > >
TNode * GPipeline::createGNode ( const GElementPtrSet dependence = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES,
Args &&...  args 
)

根据传入的信息,创建node节点

Template Parameters
T
Args
Parameters
name
loop
dependence
args
Returns

◆ createGNode() [2/2]

template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GNode, TNode >::value, int > >
TNode * GPipeline::createGNode ( const GNodeInfo info,
Args &&...  args 
)

根据传入的info信息,创建node节点

Template Parameters
TNode
Args
Parameters
info
args
Returns
Here is the call graph for this function:

◆ destroy()

CStatus GPipeline::destroy ( )
overridevirtual

释放函数

需要先将线程池相关内容析构,然后再做destroy。 否则的话,在错误status累积的情况下,在windows平台上,会产生崩溃

Reimplemented from CObject.

Here is the call graph for this function:

◆ dump()

CStatus GPipeline::dump ( std::ostream &  oss = std::cout)

生成图可视化 graphviz 信息

Parameters
oss
Returns
@notice 将输出的内容,复制到 https://dreampuf.github.io/GraphvizOnline/ 中查看效果

◆ getCurState()

GPipelineState GPipeline::getCurState ( ) const

获取当前的执行状态

Returns

◆ getMaxPara()

CSize GPipeline::getMaxPara ( )

获取最大并发度

Returns
@notice 暂时仅支持dag中所有内容均为 node的情况下计算。返回的值,是理论最大线程数,不是最优值
Here is the call graph for this function:

◆ init()

CStatus GPipeline::init ( )
overridevirtual

初始化函数

Reimplemented from CObject.

Here is the call graph for this function:

◆ initEnv()

CStatus GPipeline::initEnv ( )
private

初始化环境信息,包括线程池 等

Returns
Here is the call graph for this function:

◆ innerRegister()

CStatus GPipeline::innerRegister ( GElementPtr  element,
const GElementPtrSet depends,
const std::string &  name,
CSize  loop 
)
private

内部真实一个 element 信息

Parameters
element
depends
name
loop
Returns
Here is the call graph for this function:

◆ makeSerial()

CStatus GPipeline::makeSerial ( )

将符合串行执行条件的pipeline,设定为串行执行的模式。可以大幅度提升运行性能。

Returns
@notice 如果pipeline不可以设定的话,通过返回值提示对应信息
Here is the call graph for this function:

◆ perf()

CStatus GPipeline::perf ( std::ostream &  oss = std::cout)

查看性能分析

Returns
@notice 将输出的内容,复制到 https://dreampuf.github.io/GraphvizOnline/ 中查看效果,字段解释如下: start : 当前element第一次被执行的时间 finish : 当前element最后一次被执行结束的时间 per_cost : 当前element单次执行耗时 total_cost : 当前element执行的总耗时(仅在element多次执行时展示)
Here is the call graph for this function:

◆ process()

CStatus GPipeline::process ( CSize  runTimes = CGRAPH_DEFAULT_LOOP_TIMES)

一次性执行完成初始化,执行runTimes次,和销毁的过程

Parameters
runTimes
Returns
  1. 执行轮数(runTimes)没有结束
  2. 执行结果正常
  3. 没有进入取消状态
Here is the call graph for this function:

◆ registerGElement() [1/6]

template<typename GCoordinator , CInt SIZE>
CStatus GPipeline::registerGElement ( GCoordinatorPPtr< SIZE >  coordinatorRef,
const GElementPtrSet depends = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

注册GCoordinator类型的内容,模板特化

Template Parameters
GCoordinator
SIZE
Parameters
coordinatorRef
depends
name
loop
Returns

◆ registerGElement() [2/6]

template<typename T , c_enable_if_t< std::is_base_of< GElement, T >::value, int > >
CGRAPH_NAMESPACE_BEGIN CStatus GPipeline::registerGElement ( GElementPPtr  elementRef,
const GElementPtrSet depends,
const std::string &  name,
CSize  loop 
)

如果是GGroup类型的信息,则: 1,必须外部创建 2,未被注册到其他的pipeline中

如果不是group信息的话,且属于element(包含node和adapter) 则直接内部创建该信息

Here is the call graph for this function:

◆ registerGElement() [3/6]

template<typename T , c_enable_if_t< std::is_base_of< GElement, T >::value, int > = 0>
CStatus GPipeline::registerGElement ( GElementPPtr  elementRef,
const GElementPtrSet depends = std::initializer_list< GElementPtr >(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

在图中注册一个 GElement信息 如果注册的是GNode信息,则内部自动生成 如果注册的是GGroup信息,则需外部提前生成,然后注册进来

Template Parameters
T
Parameters
elementRef
depends
name
loop
Returns

◆ registerGElement() [4/6]

template<typename GFence >
CStatus GPipeline::registerGElement ( GFencePPtr  fenceRef,
const GElementPtrSet depends = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

注册fence类型的内容,模板特化

Template Parameters
GFence
Parameters
fenceRef
depends
name
loop
Returns

◆ registerGElement() [5/6]

template<typename GFunction >
CStatus GPipeline::registerGElement ( GFunctionPPtr  functionRef,
const GElementPtrSet depends = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

注册function类型的内容,模板特化

Template Parameters
GFunction
Parameters
functionRef
depends
name
loop
Returns

◆ registerGElement() [6/6]

template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateNode< Args ... >, TNode >::value, int > >
CStatus GPipeline::registerGElement ( GTemplateNodePtr< Args ... > *  elementRef,
const GElementPtrSet depends,
Args...  args 
)

在图中注册一个模板Element信息

Template Parameters
TNode
Args
Parameters
elementRef
depends
Returns
Here is the call graph for this function:

◆ registerGGroup()

CStatus GPipeline::registerGGroup ( GElementPPtr  groupRef,
const GElementPtrSet depends = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

注册一个组信息(推荐使用)

Parameters
groupRef
depends
name
loop
Returns
Here is the call graph for this function:

◆ registerGNode() [1/3]

template<typename TNode , typename ... Args, c_enable_if_t< std::is_base_of< GTemplateNode< Args ... >, TNode >::value, int > >
TNode * GPipeline::registerGNode ( const GElementPtrSet depends,
Args...  args 
)

注册一个 node

Template Parameters
TNode
Args
Parameters
depends
args
Returns

◆ registerGNode() [2/3]

template<typename TNode , c_enable_if_t< std::is_base_of< GNode, TNode >::value, int > >
TNode * GPipeline::registerGNode ( const GElementPtrSet depends = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

注册一个 node

Template Parameters
T
Parameters
depends
name
loop
Returns

◆ registerGNode() [3/3]

CStatus GPipeline::registerGNode ( GElementPPtr  nodeRef,
const GElementPtrSet depends = std::initializer_list<GElementPtr>(),
const std::string &  name = CGRAPH_EMPTY,
CSize  loop = CGRAPH_DEFAULT_LOOP_TIMES 
)

注册一个节点信息

Parameters
nodeRef
depends
name
loop
Returns
Here is the call graph for this function:

◆ resume()

CStatus GPipeline::resume ( )

恢复当前pipeline的执行,多用于异步执行流程中

Returns
Here is the call graph for this function:

◆ run()

CStatus GPipeline::run ( )
overridevirtual

流程处理函数

  1. 将所有 GElement 的状态设定为 NORMAL
  2. 将所有的 GParam 设置为初始值
  3. 执行dag逻辑
  4. 将所有 GElement 的状态恢复为 NORMAL
  5. 等到所有异步事件执行结束
  6. 将所有的 GParam 复原

Implements CObject.

Here is the call graph for this function:

◆ setGEngineType()

GPipelinePtr GPipeline::setGEngineType ( GEngineType  type)

设置引擎策略

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

◆ setSharedThreadPool()

GPipelinePtr GPipeline::setSharedThreadPool ( UThreadPoolPtr  ptr)

设置共享的线程池

Parameters
ptr
Returns
@notice 如果传入 nullptr 的话,则默认使用本地独占线程池
Here is the call graph for this function:

◆ setUniqueThreadPoolConfig()

GPipelinePtr GPipeline::setUniqueThreadPoolConfig ( const UThreadPoolConfig config)

设置本pipeline内部线程池相关信息

Parameters
config
Returns

实际是将信息传递给 schedule中,如果是unique的话,就使用这个参数 如果是 shared的话,其实配置是无效的

Here is the call graph for this function:

◆ trim()

CSize GPipeline::trim ( )

针对图结构,做多余边剪裁

Returns
返回值表示裁剪了多少条信息
Here is the call graph for this function:

◆ yield()

CStatus GPipeline::yield ( )

暂停当前pipeline的执行,多用于异步执行流程中

Returns
Here is the call graph for this function:

Friends And Related Function Documentation

◆ CAllocator

friend class CAllocator
friend

◆ GPerf

friend class GPerf
friend

◆ GPipelineFactory

friend class GPipelineFactory
friend

Member Data Documentation

◆ daemon_manager_

GDaemonManagerPtr GPipeline::daemon_manager_ = nullptr
private

◆ element_manager_

GElementManagerPtr GPipeline::element_manager_ = nullptr
private

不允许外部赋值和构造

◆ event_manager_

GEventManagerPtr GPipeline::event_manager_ = nullptr
private

◆ param_manager_

GParamManagerPtr GPipeline::param_manager_ = nullptr
private

◆ repository_

GElementRepository GPipeline::repository_
private

◆ schedule_

GSchedule GPipeline::schedule_
private

◆ stage_manager_

GStageManagerPtr GPipeline::stage_manager_ = nullptr
private

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