20 #include <unordered_map>
23 #include "ngraph/partial_shape.hpp"
24 #include "ngraph/type.hpp"
25 #include "ngraph/type/element_type.hpp"
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,
105 virtual void on_adapter(
const std::string& name,
107 virtual void on_adapter(
const std::string& name,
109 virtual void on_adapter(
const std::string& name,
111 virtual void on_adapter(
const std::string& name,
113 virtual void on_adapter(
const std::string& name,
115 virtual void on_adapter(
const std::string& name,
128 template <
typename AT>
132 start_structure(name);
133 on_adapter(get_name_with_context(), adapter);
137 const std::vector<std::string>&
get_context()
const {
return m_context; }
144 using node_id_t = std::string;
145 static const node_id_t invalid_node_id;
151 node_id_t
id = invalid_node_id);
158 std::vector<std::string> m_context;
159 std::unordered_map<std::shared_ptr<Node>, node_id_t> m_node_id_map;
160 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:171
Visits the attributes of a node, primarily for serialization-like tasks.
Definition: attribute_visitor.hpp:71
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:129
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:137
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:42
Definition: attribute_adapter.hpp:71
Adapters will see visitor.
Definition: attribute_adapter.hpp:194
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:28