X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcpp-common%2Fbt2%2Fgraph.hpp;h=e2bcf77ce5ced33692f25c807b3f5f60c619b808;hb=HEAD;hp=787888af2e4c930e30dcd332bbd4ff675036f01e;hpb=14d33b5a3557209b9958c3accecd2f6f676b339b;p=babeltrace.git diff --git a/src/cpp-common/bt2/graph.hpp b/src/cpp-common/bt2/graph.hpp index 787888af..e2bcf77c 100644 --- a/src/cpp-common/bt2/graph.hpp +++ b/src/cpp-common/bt2/graph.hpp @@ -57,7 +57,7 @@ public: ConstSourceComponent addComponent(const ConstSourceComponentClass componentClass, const bt2c::CStringView name, const OptionalBorrowedObject params = {}, - const LoggingLevel loggingLevel = LoggingLevel::NONE) const + const LoggingLevel loggingLevel = LoggingLevel::None) const { return this->_addComponent( componentClass, name, params, static_cast(nullptr), loggingLevel, @@ -66,9 +66,9 @@ public: template ConstSourceComponent addComponent(const ConstSourceComponentClass componentClass, - const bt2c::CStringView name, InitDataT& initData, + const bt2c::CStringView name, InitDataT&& initData, const OptionalBorrowedObject params = {}, - const LoggingLevel loggingLevel = LoggingLevel::NONE) const + const LoggingLevel loggingLevel = LoggingLevel::None) const { return this->_addComponent( componentClass, name, params, &initData, loggingLevel, @@ -78,7 +78,7 @@ public: ConstFilterComponent addComponent(const ConstFilterComponentClass componentClass, const bt2c::CStringView name, const OptionalBorrowedObject params = {}, - const LoggingLevel loggingLevel = LoggingLevel::NONE) const + const LoggingLevel loggingLevel = LoggingLevel::None) const { return this->_addComponent( componentClass, name, params, static_cast(nullptr), loggingLevel, @@ -87,9 +87,9 @@ public: template ConstFilterComponent addComponent(const ConstFilterComponentClass componentClass, - const bt2c::CStringView name, InitDataT& initData, + const bt2c::CStringView name, InitDataT&& initData, const OptionalBorrowedObject params = {}, - const LoggingLevel loggingLevel = LoggingLevel::NONE) const + const LoggingLevel loggingLevel = LoggingLevel::None) const { return this->_addComponent( componentClass, name, params, &initData, loggingLevel, @@ -99,7 +99,7 @@ public: ConstSinkComponent addComponent(const ConstSinkComponentClass componentClass, const bt2c::CStringView name, const OptionalBorrowedObject params = {}, - const LoggingLevel loggingLevel = LoggingLevel::NONE) const + const LoggingLevel loggingLevel = LoggingLevel::None) const { return this->_addComponent( componentClass, name, params, static_cast(nullptr), loggingLevel, @@ -108,16 +108,16 @@ public: template ConstSinkComponent addComponent(const ConstSinkComponentClass componentClass, - const bt2c::CStringView name, InitDataT& initData, + const bt2c::CStringView name, InitDataT&& initData, const OptionalBorrowedObject params = {}, - const LoggingLevel loggingLevel = LoggingLevel::NONE) const + const LoggingLevel loggingLevel = LoggingLevel::None) const { return this->_addComponent( componentClass, name, params, &initData, loggingLevel, bt_graph_add_sink_component_with_initialize_method_data); } - void connectPorts(const ConstOutputPort outputPort, const ConstInputPort inputPort) const + Graph connectPorts(const ConstOutputPort outputPort, const ConstInputPort inputPort) const { const auto status = bt_graph_connect_ports(this->libObjPtr(), outputPort.libObjPtr(), inputPort.libObjPtr(), nullptr); @@ -127,9 +127,11 @@ public: } else if (status == BT_GRAPH_CONNECT_PORTS_STATUS_MEMORY_ERROR) { throw MemoryError {}; } + + return *this; } - void runOnce() const + Graph runOnce() const { const auto status = bt_graph_run_once(this->libObjPtr()); @@ -140,9 +142,11 @@ public: } else if (status == BT_GRAPH_RUN_ONCE_STATUS_AGAIN) { throw TryAgain {}; } + + return *this; } - void run() const + Graph run() const { const auto status = bt_graph_run(this->libObjPtr()); @@ -153,6 +157,8 @@ public: } else if (status == BT_GRAPH_RUN_STATUS_AGAIN) { throw TryAgain {}; } + + return *this; } private: @@ -176,7 +182,7 @@ private: throw MemoryError {}; } - return wrap(libObjPtr); + return ConstComponentT {libObjPtr}; } };