Jlm
Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
jlm::tooling::CommandGraph::Node Class Referencefinal

#include <CommandGraph.hpp>

Collaboration diagram for jlm::tooling::CommandGraph::Node:
Collaboration graph
[legend]

Classes

class  IncomingEdgeConstIterator
 Command graph node incoming edge const iterator. More...
 
class  OutgoingEdgeConstIterator
 Command graph node outgoing edge const iterator. More...
 

Public Member Functions

 ~Node ()
 
 Node (const Node &)=delete
 
 Node (Node &&)=delete
 
Nodeoperator= (const Node &)=delete
 
Nodeoperator= (Node &&)=delete
 
const CommandGraphGetCommandGraph () const noexcept
 
CommandGetCommand () const noexcept
 
size_t NumIncomingEdges () const noexcept
 
size_t NumOutgoingEdges () const noexcept
 
IncomingEdgeConstRange IncomingEdges () const
 
OutgoingEdgeConstRange OutgoingEdges () const
 
void AddEdge (Node &sink)
 

Static Public Member Functions

static NodeCreate (CommandGraph &commandGraph, std::unique_ptr< Command > command)
 

Private Types

using IncomingEdgeConstRange = util::IteratorRange< IncomingEdgeConstIterator >
 
using OutgoingEdgeConstRange = util::IteratorRange< OutgoingEdgeConstIterator >
 

Private Member Functions

 Node (const CommandGraph &commandGraph, std::unique_ptr< Command > command)
 

Private Attributes

const CommandGraphCommandGraph_
 
std::unique_ptr< CommandCommand_
 
std::unordered_set< Edge * > IncomingEdges_
 
std::unordered_set< std::unique_ptr< Edge > > OutgoingEdges_
 

Detailed Description

Represents a single command in the command graph.

Definition at line 121 of file CommandGraph.hpp.

Member Typedef Documentation

◆ IncomingEdgeConstRange

Definition at line 126 of file CommandGraph.hpp.

◆ OutgoingEdgeConstRange

Definition at line 127 of file CommandGraph.hpp.

Constructor & Destructor Documentation

◆ ~Node()

jlm::tooling::CommandGraph::Node::~Node ( )
default

◆ Node() [1/3]

jlm::tooling::CommandGraph::Node::Node ( const CommandGraph commandGraph,
std::unique_ptr< Command command 
)
private

Definition at line 91 of file CommandGraph.cpp.

◆ Node() [2/3]

jlm::tooling::CommandGraph::Node::Node ( const Node )
delete

◆ Node() [3/3]

jlm::tooling::CommandGraph::Node::Node ( Node &&  )
delete

Member Function Documentation

◆ AddEdge()

void jlm::tooling::CommandGraph::Node::AddEdge ( Node sink)
inline

Definition at line 177 of file CommandGraph.hpp.

◆ Create()

CommandGraph::Node & jlm::tooling::CommandGraph::Node::Create ( CommandGraph commandGraph,
std::unique_ptr< Command command 
)
static

Definition at line 111 of file CommandGraph.cpp.

◆ GetCommand()

Command& jlm::tooling::CommandGraph::Node::GetCommand ( ) const
inlinenoexcept

Definition at line 153 of file CommandGraph.hpp.

◆ GetCommandGraph()

const CommandGraph& jlm::tooling::CommandGraph::Node::GetCommandGraph ( ) const
inlinenoexcept

Definition at line 147 of file CommandGraph.hpp.

◆ IncomingEdges()

CommandGraph::Node::IncomingEdgeConstRange jlm::tooling::CommandGraph::Node::IncomingEdges ( ) const

Definition at line 97 of file CommandGraph.cpp.

◆ NumIncomingEdges()

size_t jlm::tooling::CommandGraph::Node::NumIncomingEdges ( ) const
inlinenoexcept

Definition at line 159 of file CommandGraph.hpp.

◆ NumOutgoingEdges()

size_t jlm::tooling::CommandGraph::Node::NumOutgoingEdges ( ) const
inlinenoexcept

Definition at line 165 of file CommandGraph.hpp.

◆ operator=() [1/2]

Node& jlm::tooling::CommandGraph::Node::operator= ( const Node )
delete

◆ operator=() [2/2]

Node& jlm::tooling::CommandGraph::Node::operator= ( Node &&  )
delete

◆ OutgoingEdges()

CommandGraph::Node::OutgoingEdgeConstRange jlm::tooling::CommandGraph::Node::OutgoingEdges ( ) const

Definition at line 104 of file CommandGraph.cpp.

Member Data Documentation

◆ Command_

std::unique_ptr<Command> jlm::tooling::CommandGraph::Node::Command_
private

Definition at line 190 of file CommandGraph.hpp.

◆ CommandGraph_

const CommandGraph& jlm::tooling::CommandGraph::Node::CommandGraph_
private

Definition at line 189 of file CommandGraph.hpp.

◆ IncomingEdges_

std::unordered_set<Edge *> jlm::tooling::CommandGraph::Node::IncomingEdges_
private

Definition at line 191 of file CommandGraph.hpp.

◆ OutgoingEdges_

std::unordered_set<std::unique_ptr<Edge> > jlm::tooling::CommandGraph::Node::OutgoingEdges_
private

Definition at line 192 of file CommandGraph.hpp.


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