Jlm
Public Member Functions | Private Attributes | Friends | List of all members
jlm::rvsdg::RegionObserver Class Referenceabstract

Proxy object to observe changes to a region. More...

#include <region.hpp>

Inheritance diagram for jlm::rvsdg::RegionObserver:
Inheritance graph
[legend]
Collaboration diagram for jlm::rvsdg::RegionObserver:
Collaboration graph
[legend]

Public Member Functions

virtual ~RegionObserver () noexcept
 
 RegionObserver (const Region &region)
 
 RegionObserver (const RegionObserver &)=delete
 
RegionObserveroperator= (const RegionObserver &)=delete
 
virtual void onNodeCreate (Node *node)=0
 
virtual void onNodeDestroy (Node *node)=0
 
virtual void onInputCreate (Input *input)=0
 
virtual void onInputChange (Input *input, Output *old_origin, Output *new_origin)=0
 
virtual void onInputDestroy (Input *input)=0
 

Private Attributes

RegionObserver ** pprev_
 
RegionObservernext_
 

Friends

class Region
 

Detailed Description

Proxy object to observe changes to a region.

Subscribers can implement and instantiate this interface for a specific region to receive notifications about the region.

Definition at line 782 of file region.hpp.

Constructor & Destructor Documentation

◆ ~RegionObserver()

jlm::rvsdg::RegionObserver::~RegionObserver ( )
virtualnoexcept

Definition at line 588 of file region.cpp.

◆ RegionObserver() [1/2]

jlm::rvsdg::RegionObserver::RegionObserver ( const Region region)
explicit

Definition at line 597 of file region.cpp.

◆ RegionObserver() [2/2]

jlm::rvsdg::RegionObserver::RegionObserver ( const RegionObserver )
delete

Member Function Documentation

◆ onInputChange()

virtual void jlm::rvsdg::RegionObserver::onInputChange ( Input input,
Output old_origin,
Output new_origin 
)
pure virtual

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.

Implemented in jlm::rvsdg::detail::ForwardingObserver< Traverser >, jlm::rvsdg::detail::ForwardingObserver< BottomUpTraverserGeneric >, jlm::rvsdg::detail::ForwardingObserver< TopDownTraverserGeneric >, and jlm::rvsdg::RecordingObserver.

◆ onInputCreate()

virtual void jlm::rvsdg::RegionObserver::onInputCreate ( Input input)
pure virtual

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

Implemented in jlm::rvsdg::detail::ForwardingObserver< Traverser >, jlm::rvsdg::detail::ForwardingObserver< BottomUpTraverserGeneric >, jlm::rvsdg::detail::ForwardingObserver< TopDownTraverserGeneric >, and jlm::rvsdg::RecordingObserver.

◆ onInputDestroy()

virtual void jlm::rvsdg::RegionObserver::onInputDestroy ( Input input)
pure virtual

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

Implemented in jlm::rvsdg::detail::ForwardingObserver< Traverser >, jlm::rvsdg::detail::ForwardingObserver< BottomUpTraverserGeneric >, jlm::rvsdg::detail::ForwardingObserver< TopDownTraverserGeneric >, and jlm::rvsdg::RecordingObserver.

◆ onNodeCreate()

virtual void jlm::rvsdg::RegionObserver::onNodeCreate ( Node node)
pure virtual

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

Parameters
nodethe node being added

Implemented in jlm::rvsdg::detail::ForwardingObserver< Traverser >, jlm::rvsdg::detail::ForwardingObserver< BottomUpTraverserGeneric >, jlm::rvsdg::detail::ForwardingObserver< TopDownTraverserGeneric >, and jlm::rvsdg::RecordingObserver.

◆ onNodeDestroy()

virtual void jlm::rvsdg::RegionObserver::onNodeDestroy ( Node node)
pure virtual

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

Parameters
nodethe node being removed

Implemented in jlm::rvsdg::detail::ForwardingObserver< Traverser >, jlm::rvsdg::detail::ForwardingObserver< BottomUpTraverserGeneric >, jlm::rvsdg::detail::ForwardingObserver< TopDownTraverserGeneric >, and jlm::rvsdg::RecordingObserver.

◆ operator=()

RegionObserver& jlm::rvsdg::RegionObserver::operator= ( const RegionObserver )
delete

Friends And Related Function Documentation

◆ Region

friend class Region
friend

Definition at line 839 of file region.hpp.

Member Data Documentation

◆ next_

RegionObserver* jlm::rvsdg::RegionObserver::next_
private

Definition at line 837 of file region.hpp.

◆ pprev_

RegionObserver** jlm::rvsdg::RegionObserver::pprev_
private

Definition at line 836 of file region.hpp.


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