From 57c30b7897bcdf4188a9f45414b48998602c1b69 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EB=B0=95=EC=A2=85=ED=98=84/On-Device=20Lab=28SR=29/Staff?= =?utf8?q?=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Mon, 15 Jul 2019 15:32:13 +0900 Subject: [PATCH] [moco/tf] Chainable GraphBuilderRegistry (#4258) This commit allows users to build a GraphBuilderRegistry chain. Signed-off-by: Jonghyun Park --- contrib/moco-tf/src/GraphBuilderRegistry.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/contrib/moco-tf/src/GraphBuilderRegistry.h b/contrib/moco-tf/src/GraphBuilderRegistry.h index 3ab5b16..f902ec2 100644 --- a/contrib/moco-tf/src/GraphBuilderRegistry.h +++ b/contrib/moco-tf/src/GraphBuilderRegistry.h @@ -44,6 +44,15 @@ struct GraphBuilderSource class GraphBuilderRegistry final : public GraphBuilderSource { public: + GraphBuilderRegistry() = default; + +public: + GraphBuilderRegistry(const GraphBuilderSource *parent) : _parent{parent} + { + // DO NOTHING + } + +public: /** * @brief Returns registered GraphBuilder pointer for operator or * nullptr if not registered @@ -51,7 +60,7 @@ public: const GraphBuilder *lookup(const std::string &op) const final { if (_builder_map.find(op) == _builder_map.end()) - return nullptr; + return (_parent == nullptr) ? nullptr : _parent->lookup(op); return _builder_map.at(op).get(); } @@ -69,6 +78,9 @@ public: } private: + const GraphBuilderSource *_parent = nullptr; + +private: std::map> _builder_map; }; -- 2.7.4