Jlm
Public Member Functions | Private Attributes | List of all members
jlm::rvsdg::detail::ForwardingObserver< Traverser > Class Template Referencefinal

#include <traverser.hpp>

Inheritance diagram for jlm::rvsdg::detail::ForwardingObserver< Traverser >:
Inheritance graph
[legend]
Collaboration diagram for jlm::rvsdg::detail::ForwardingObserver< Traverser >:
Collaboration graph
[legend]

Public Member Functions

 ~ForwardingObserver () noexcept override
 
 ForwardingObserver (const Region &region, Traverser &traverser)
 
void onNodeCreate (Node *node) override
 
void onNodeDestroy (Node *node) override
 
void onInputCreate (Input *input) override
 
void onInputChange (Input *input, Output *oldOrigin, Output *newOrigin) override
 
void onInputDestroy (Input *input) override
 
- Public Member Functions inherited from jlm::rvsdg::RegionObserver
virtual ~RegionObserver () noexcept
 
 RegionObserver (const Region &region)
 
 RegionObserver (const RegionObserver &)=delete
 
RegionObserveroperator= (const RegionObserver &)=delete
 

Private Attributes

Traverser & traverser_
 

Detailed Description

template<typename Traverser>
class jlm::rvsdg::detail::ForwardingObserver< Traverser >

Region observer that forwards all calls to the given traverser

Template Parameters
Traverserthe type of the target traverser

Definition at line 146 of file traverser.hpp.

Constructor & Destructor Documentation

◆ ~ForwardingObserver()

template<typename Traverser >
jlm::rvsdg::detail::ForwardingObserver< Traverser >::~ForwardingObserver ( )
overridedefaultnoexcept

◆ ForwardingObserver()

template<typename Traverser >
jlm::rvsdg::detail::ForwardingObserver< Traverser >::ForwardingObserver ( const Region region,
Traverser &  traverser 
)

Definition at line 34 of file traverser.cpp.

Member Function Documentation

◆ onInputChange()

template<typename Traverser >
void jlm::rvsdg::detail::ForwardingObserver< Traverser >::onInputChange ( Input input,
Output old_origin,
Output new_origin 
)
overridevirtual

Called right after the given input gets a new origin.

Parameters
inputthe input.
old_originthe input's old origin.
new_originthe input's new origin.

Implements jlm::rvsdg::RegionObserver.

Definition at line 62 of file traverser.cpp.

◆ onInputCreate()

template<typename Traverser >
void jlm::rvsdg::detail::ForwardingObserver< Traverser >::onInputCreate ( Input input)
overridevirtual

Called after a node gets a new input, or the region gets a new result. This method is not called when creating new nodes, only modifying existing nodes.

Parameters
inputthe new input

Implements jlm::rvsdg::RegionObserver.

Definition at line 55 of file traverser.cpp.

◆ onInputDestroy()

template<typename Traverser >
void jlm::rvsdg::detail::ForwardingObserver< Traverser >::onInputDestroy ( Input input)
overridevirtual

Called right before a node input or region result is removed. This method is not called when deleting nodes, only modifying existing nodes.

Parameters
inputthe input that is removed

Implements jlm::rvsdg::RegionObserver.

Definition at line 69 of file traverser.cpp.

◆ onNodeCreate()

template<typename Traverser >
void jlm::rvsdg::detail::ForwardingObserver< Traverser >::onNodeCreate ( Node node)
overridevirtual

Called right after a node is added to the region, after the node has its inputs and output added.

Parameters
nodethe node being added

Implements jlm::rvsdg::RegionObserver.

Definition at line 41 of file traverser.cpp.

◆ onNodeDestroy()

template<typename Traverser >
void jlm::rvsdg::detail::ForwardingObserver< Traverser >::onNodeDestroy ( Node node)
overridevirtual

Called right before a node is removed from the region, before the node has its inputs and outputs removed.

Parameters
nodethe node being removed

Implements jlm::rvsdg::RegionObserver.

Definition at line 48 of file traverser.cpp.

Member Data Documentation

◆ traverser_

template<typename Traverser >
Traverser& jlm::rvsdg::detail::ForwardingObserver< Traverser >::traverser_
private

Definition at line 169 of file traverser.hpp.


The documentation for this class was generated from the following files: