diff --git a/mediapipe/tasks/cc/components/utils/gate.h b/mediapipe/tasks/cc/components/utils/gate.h index 68a9e781..139205fc 100644 --- a/mediapipe/tasks/cc/components/utils/gate.h +++ b/mediapipe/tasks/cc/components/utils/gate.h @@ -26,15 +26,12 @@ namespace tasks { namespace components { namespace utils { -using ::mediapipe::api2::builder::SideSource; -using ::mediapipe::api2::builder::Source; - // Utility class that simplifies allowing (gating) multiple streams. class AllowGate { public: - AllowGate(Source allow, mediapipe::api2::builder::Graph& graph) + AllowGate(api2::builder::Source allow, api2::builder::Graph& graph) : node_(AddSourceGate(allow, graph)) {} - AllowGate(SideSource allow, mediapipe::api2::builder::Graph& graph) + AllowGate(api2::builder::SideSource allow, api2::builder::Graph& graph) : node_(AddSideSourceGate(allow, graph)) {} // Move-only @@ -42,39 +39,40 @@ class AllowGate { AllowGate& operator=(AllowGate&& allow_gate) = default; template - Source Allow(Source source) { + api2::builder::Source Allow(api2::builder::Source source) { source >> node_.In(index_); return node_.Out(index_++).Cast(); } private: template - static mediapipe::api2::builder::GenericNode& AddSourceGate( - T allow, mediapipe::api2::builder::Graph& graph) { + static api2::builder::GenericNode& AddSourceGate( + T allow, api2::builder::Graph& graph) { auto& gate_node = graph.AddNode("GateCalculator"); allow >> gate_node.In("ALLOW"); return gate_node; } template - static mediapipe::api2::builder::GenericNode& AddSideSourceGate( - T allow, mediapipe::api2::builder::Graph& graph) { + static api2::builder::GenericNode& AddSideSourceGate( + T allow, api2::builder::Graph& graph) { auto& gate_node = graph.AddNode("GateCalculator"); allow >> gate_node.SideIn("ALLOW"); return gate_node; } - mediapipe::api2::builder::GenericNode& node_; + api2::builder::GenericNode& node_; int index_ = 0; }; // Utility class that simplifies disallowing (gating) multiple streams. class DisallowGate { public: - DisallowGate(Source disallow, mediapipe::api2::builder::Graph& graph) + DisallowGate(api2::builder::Source disallow, + api2::builder::Graph& graph) : node_(AddSourceGate(disallow, graph)) {} - DisallowGate(SideSource disallow, - mediapipe::api2::builder::Graph& graph) + DisallowGate(api2::builder::SideSource disallow, + api2::builder::Graph& graph) : node_(AddSideSourceGate(disallow, graph)) {} // Move-only @@ -82,15 +80,15 @@ class DisallowGate { DisallowGate& operator=(DisallowGate&& disallow_gate) = default; template - Source Disallow(Source source) { + api2::builder::Source Disallow(api2::builder::Source source) { source >> node_.In(index_); return node_.Out(index_++).Cast(); } private: template - static mediapipe::api2::builder::GenericNode& AddSourceGate( - T disallow, mediapipe::api2::builder::Graph& graph) { + static api2::builder::GenericNode& AddSourceGate( + T disallow, api2::builder::Graph& graph) { auto& gate_node = graph.AddNode("GateCalculator"); auto& gate_node_opts = gate_node.GetOptions(); @@ -104,8 +102,8 @@ class DisallowGate { } template - static mediapipe::api2::builder::GenericNode& AddSideSourceGate( - T disallow, mediapipe::api2::builder::Graph& graph) { + static api2::builder::GenericNode& AddSideSourceGate( + T disallow, api2::builder::Graph& graph) { auto& gate_node = graph.AddNode("GateCalculator"); auto& gate_node_opts = gate_node.GetOptions(); @@ -114,39 +112,43 @@ class DisallowGate { return gate_node; } - mediapipe::api2::builder::GenericNode& node_; + api2::builder::GenericNode& node_; int index_ = 0; }; // Updates graph to drop @value stream packet if corresponding @condition stream // packet holds true. template -Source DisallowIf(Source value, Source condition, - mediapipe::api2::builder::Graph& graph) { +api2::builder::Source DisallowIf(api2::builder::Source value, + api2::builder::Source condition, + api2::builder::Graph& graph) { return DisallowGate(condition, graph).Disallow(value); } // Updates graph to drop @value stream packet if corresponding @condition stream // packet holds true. template -Source DisallowIf(Source value, SideSource condition, - mediapipe::api2::builder::Graph& graph) { +api2::builder::Source DisallowIf(api2::builder::Source value, + api2::builder::SideSource condition, + api2::builder::Graph& graph) { return DisallowGate(condition, graph).Disallow(value); } // Updates graph to pass through @value stream packet if corresponding -// @condition stream packet holds true. +// @allow stream packet holds true. template -Source AllowIf(Source value, Source allow, - mediapipe::api2::builder::Graph& graph) { +api2::builder::Source AllowIf(api2::builder::Source value, + api2::builder::Source allow, + api2::builder::Graph& graph) { return AllowGate(allow, graph).Allow(value); } // Updates graph to pass through @value stream packet if corresponding -// @condition side stream packet holds true. +// @allow side stream packet holds true. template -Source AllowIf(Source value, SideSource allow, - mediapipe::api2::builder::Graph& graph) { +api2::builder::Source AllowIf(api2::builder::Source value, + api2::builder::SideSource allow, + api2::builder::Graph& graph) { return AllowGate(allow, graph).Allow(value); }