X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=tests%2Flib%2Futils%2Frun-in.cpp;fp=tests%2Flib%2Futils%2Frun-in.cpp;h=91b23396e7fbcd6650cd1589baeab69d738ad86d;hp=a3391a93ea2e6ec5e2ff5396d961814ef7abe1f1;hb=5d7e57e846a27172cc3bc5d0fcf5b3e55551e289;hpb=0133a2ba3063b5b8526990bf95f2f53ed212f6a6 diff --git a/tests/lib/utils/run-in.cpp b/tests/lib/utils/run-in.cpp index a3391a93..91b23396 100644 --- a/tests/lib/utils/run-in.cpp +++ b/tests/lib/utils/run-in.cpp @@ -4,8 +4,6 @@ * Copyright (C) 2020-2023 EfficiOS, inc. */ -#include - #include "common/assert.h" #include "cpp-common/bt2/component-class-dev.hpp" #include "cpp-common/bt2/component-class.hpp" @@ -17,14 +15,19 @@ #include "run-in.hpp" -namespace { +void RunIn::onQuery(bt2::SelfComponentClass) +{ +} -struct RunInData final +void RunIn::onCompInit(bt2::SelfComponent) { - RunInCompClsQueryFunc compClsCtxFunc; - RunInCompClsInitFunc compCtxFunc; - RunInMsgIterClsInitFunc msgIterCtxFunc; -}; +} + +void RunIn::onMsgIterInit(bt2::SelfMessageIterator) +{ +} + +namespace { class RunInSource; @@ -36,11 +39,7 @@ public: const bt2::SelfComponentOutputPort port) : bt2::UserMessageIterator {self, "RUN-IN-SRC-MSG-ITER"} { - const auto& data = port.data(); - - if (data.msgIterCtxFunc) { - data.msgIterCtxFunc(self); - } + port.data().onMsgIterInit(self); } void _next(bt2::ConstMessageArray&) @@ -49,56 +48,46 @@ public: }; class RunInSource final : - public bt2::UserSourceComponent + public bt2::UserSourceComponent { public: static constexpr auto name = "run-in-src"; explicit RunInSource(const bt2::SelfSourceComponent self, bt2::ConstMapValue, - const RunInData * const runInData) : - bt2::UserSourceComponent {self, "RUN-IN-SRC"}, - _mRunInData {runInData} + RunIn * const runIn) : + bt2::UserSourceComponent {self, + "RUN-IN-SRC"}, + _mRunIn {runIn} { - this->_addOutputPort("out", *runInData); - - if (_mRunInData->compCtxFunc) { - _mRunInData->compCtxFunc(self); - } + this->_addOutputPort("out", *runIn); + _mRunIn->onCompInit(self); } static bt2::Value::Shared _query(const bt2::SelfComponentClass self, bt2::PrivateQueryExecutor, - bt2c::CStringView, bt2::ConstValue, - const RunInData * const data) + bt2c::CStringView, bt2::ConstValue, RunIn *data) { - if (data->compClsCtxFunc) { - data->compClsCtxFunc(self); - } - + data->onQuery(self); return bt2::NullValue {}.shared(); } private: - const RunInData *_mRunInData; + RunIn *_mRunIn; }; } /* namespace */ -void runIn(RunInCompClsQueryFunc compClsCtxFunc, RunInCompClsInitFunc compCtxFunc, - RunInMsgIterClsInitFunc msgIterCtxFunc) +void runIn(RunIn& runIn) { - RunInData data {std::move(compClsCtxFunc), std::move(compCtxFunc), std::move(msgIterCtxFunc)}; const auto srcCompCls = bt2::SourceComponentClass::create(); - /* Execute a query (executes `compClsCtxFunc`) */ - bt2::QueryExecutor::create(*srcCompCls, "object-name", data)->query(); + /* Execute a query */ + bt2::QueryExecutor::create(*srcCompCls, "object-name", runIn)->query(); /* Create graph */ const auto graph = bt2::Graph::create(0); /* Add custom source component (executes `compCtxFunc`) */ - const auto srcComp = graph->addComponent(*srcCompCls, "the-source", data); + const auto srcComp = graph->addComponent(*srcCompCls, "the-source", runIn); /* Add dummy sink component */ const auto sinkComp = bt2c::call([&] { @@ -125,18 +114,3 @@ void runIn(RunInCompClsQueryFunc compClsCtxFunc, RunInCompClsInitFunc compCtxFun /* Run graph (executes `msgIterCtxFunc`) */ graph->run(); } - -void runInCompClsQuery(RunInCompClsQueryFunc func) -{ - runIn(std::move(func), nullptr, nullptr); -} - -void runInCompClsInit(RunInCompClsInitFunc func) -{ - runIn(nullptr, std::move(func), nullptr); -} - -void runInMsgIterClsInit(RunInMsgIterClsInitFunc func) -{ - runIn(nullptr, nullptr, std::move(func)); -}