Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ option(CGRAPH_BUILD_PERFORMANCE_TESTS "Enable build performance tests" OFF)
# 副作用是GParam中的锁无法递归上锁,一般情况下可忽略影响
# add_definitions(-D_CGRAPH_GPARAM_RWLOCK_ENABLE_)

# 如果开启此宏定义,则执行过程中,仅正常执行 element 的 init/run/destroy 方法
# 无 循环loop、切面aspect、退出cancel、暂停Suspend 等功能
# 主要用于 简单场景 和 性能测试,一般情况不建议开启
# add_definitions(-D_CGRAPH_LITE_MODE_ENABLE_)

# add CGraph environment info
include(cmake/CGraph-env-include.cmake)

Expand Down
32 changes: 32 additions & 0 deletions src/GraphCtrl/GraphElement/GElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,37 @@ CStatus GElement::doAspect(const internal::GAspectType& aspectType, const CStatu
}


#ifdef _CGRAPH_LITE_MODE_ENABLE_
CStatus GElement::fatProcessor(const CFunctionType& type) {
CGRAPH_FUNCTION_BEGIN
try {
switch (type) {
case CFunctionType::RUN: {
status = run();
CGRAPH_FUNCTION_CHECK_STATUS
break;
}
case CFunctionType::INIT: {
concerned_params_.clear(); // 仅需要记录这一轮使用到的 GParam 信息
status = init();
CGRAPH_FUNCTION_CHECK_STATUS
break;
}
case CFunctionType::DESTROY: {
status = destroy();
CGRAPH_FUNCTION_CHECK_STATUS
break;
}
default:
CGRAPH_RETURN_ERROR_STATUS("get function type error")
}
} catch (const CException& ex) {
status = crashed(ex);
}

CGRAPH_FUNCTION_END
}
#else
CStatus GElement::fatProcessor(const CFunctionType& type) {
CGRAPH_FUNCTION_BEGIN

Expand Down Expand Up @@ -284,6 +315,7 @@ CStatus GElement::fatProcessor(const CFunctionType& type) {

CGRAPH_FUNCTION_END
}
#endif


CStatus GElement::prepareRun() {
Expand Down
8 changes: 4 additions & 4 deletions src/GraphCtrl/GraphElement/GElementManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ GElementManager::~GElementManager() {
CStatus GElementManager::init() {
CGRAPH_FUNCTION_BEGIN

for (auto element : manager_elements_) {
for (auto* element : manager_elements_) {
CGRAPH_ASSERT_NOT_NULL(element)
}

status = initEngine();
CGRAPH_FUNCTION_CHECK_STATUS

for (GElementPtr element : manager_elements_) {
for (auto* element : manager_elements_) {
status = element->fatProcessor(CFunctionType::INIT);
CGRAPH_FUNCTION_CHECK_STATUS
element->is_init_ = true;
Expand All @@ -43,7 +43,7 @@ CStatus GElementManager::init() {
CStatus GElementManager::destroy() {
CGRAPH_FUNCTION_BEGIN

for (GElementPtr element : manager_elements_) {
for (auto* element : manager_elements_) {
status = element->fatProcessor(CFunctionType::DESTROY);
CGRAPH_FUNCTION_CHECK_STATUS
element->is_init_ = false;
Expand Down Expand Up @@ -136,7 +136,7 @@ CSize GElementManager::calcMaxParaSize() const {
}


CBool GElementManager::checkSerializable() {
CBool GElementManager::checkSerializable() const {
if (engine_type_ != GEngineType::DYNAMIC) {
return false; // 目前仅支持动态引擎的执行方式
}
Expand Down
2 changes: 1 addition & 1 deletion src/GraphCtrl/GraphElement/GElementManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ class GElementManager : public GElementObject,
* 查看是否可以串行执行
* @return
*/
CBool checkSerializable();
CBool checkSerializable() const;

/**
* 剪裁多余的连边信息
Expand Down
Loading