// Copyright (c) OpenMMLab. All rights reserved. #ifndef MMDEPLOY_SRC_PIPELINE_PIPELINE_H_ #define MMDEPLOY_SRC_PIPELINE_PIPELINE_H_ #include "graph/common.h" namespace mmdeploy::graph { class Pipeline : public BaseNode { public: explicit Pipeline(const Value& cfg); void Build(TaskGraph& graph) override; private: enum BindingType { kRead, kWrite }; std::vector UpdateBindings(const std::vector& names, BindingType type); Result Call(Context& ctx, int idx); Result Ret(Context& ctx, int idx); private: vector> nodes_; vector input_idx_; vector output_idx_; vector> node_input_idx_; vector> node_output_idx_; std::map binding_name_to_idx_; std::map binding_idx_to_name_; }; } // namespace mmdeploy::graph #endif // MMDEPLOY_SRC_PIPELINE_PIPELINE_H_