8 #include <unordered_map>
11 #include "ngraph/partial_shape.hpp"
12 #include "ngraph/type.hpp"
13 #include "ngraph/type/element_type.hpp"
83 virtual void on_adapter(
const std::string& name,
85 virtual void on_adapter(
const std::string& name,
87 virtual void on_adapter(
const std::string& name,
89 virtual void on_adapter(
const std::string& name,
91 virtual void on_adapter(
const std::string& name,
93 virtual void on_adapter(
const std::string& name,
95 virtual void on_adapter(
const std::string& name,
97 virtual void on_adapter(
const std::string& name,
99 virtual void on_adapter(
const std::string& name,
101 virtual void on_adapter(
const std::string& name,
103 virtual void on_adapter(
const std::string& name,
116 template <
typename AT>
120 start_structure(name);
121 on_adapter(get_name_with_context(), adapter);
125 const std::vector<std::string>&
get_context()
const {
return m_context; }
132 using node_id_t = std::string;
133 static const node_id_t invalid_node_id;
139 node_id_t
id = invalid_node_id);
146 std::vector<std::string> m_context;
147 std::unordered_map<std::shared_ptr<Node>, node_id_t> m_node_id_map;
148 std::unordered_map<node_id_t, std::shared_ptr<Node>> m_id_node_map;
An AttributeAdapter "captures" an attribute as an AT& and makes it available as a ValueAccessor<VAT>.
Definition: attribute_adapter.hpp:161
Visits the attributes of a node, primarily for serialization-like tasks.
Definition: attribute_visitor.hpp:59
virtual void on_adapter(const std::string &name, VisitorAdapter &adapter)
Hook for adapters that need visitor access.
virtual void start_structure(const std::string &name)
Start visiting a nested structure.
void on_attribute(const std::string &name, AT &value)
Definition: attribute_visitor.hpp:117
virtual void on_adapter(const std::string &name, ValueAccessor< std::shared_ptr< Function >> &adapter)
Provides API to handle nGraph Function attribute type, accessed as ValueAccessor.
virtual std::string get_name_with_context()
const std::vector< std::string > & get_context() const
Definition: attribute_visitor.hpp:125
virtual std::shared_ptr< Node > get_registered_node(node_id_t id)
Returns the node with the given id, or nullptr if there is no registered node.
virtual void on_adapter(const std::string &name, ValueAccessor< void > &adapter)=0
handles all specialized on_adapter methods implemented by the visitor.
virtual std::string finish_structure()
Finish visiting a nested structure.
virtual void register_node(const std::shared_ptr< Node > &node, node_id_t id=invalid_node_id)
Associate a node with an id.
virtual node_id_t get_registered_node_id(const std::shared_ptr< Node > &node)
Returns the id for the node, or -1 if the node is not registered.
ValueAccessor<void> provides an accessor for values that do not have get/set methonds via AttributeVi...
Definition: attribute_adapter.hpp:30
Definition: attribute_adapter.hpp:59
Adapters will see visitor.
Definition: attribute_adapter.hpp:185
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:16