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

#include <CommandGraph.hpp>

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

Classes

class  Edge
 
class  Node
 

Public Member Functions

 ~CommandGraph ()=default
 
 CommandGraph ()
 
 CommandGraph (const CommandGraph &)=delete
 
 CommandGraph (CommandGraph &&)=delete
 
CommandGraphoperator= (const CommandGraph &)=delete
 
CommandGraphoperator= (CommandGraph &&)=delete
 
NodeGetEntryNode () const noexcept
 
NodeGetExitNode () const noexcept
 
size_t NumNodes () const noexcept
 
NodeAddNode (std::unique_ptr< Node > node)
 
void Run () const
 

Static Public Member Functions

static std::vector< CommandGraph::Node * > SortNodesTopological (const CommandGraph &commandGraph)
 
static std::unique_ptr< CommandGraphCreate ()
 

Private Attributes

NodeExitNode_
 
NodeEntryNode_
 
std::unordered_set< std::unique_ptr< Node > > Nodes_
 

Detailed Description

A simple dependency graph for command execution.

Definition at line 24 of file CommandGraph.hpp.

Constructor & Destructor Documentation

◆ ~CommandGraph()

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

◆ CommandGraph() [1/3]

jlm::tooling::CommandGraph::CommandGraph ( )

Definition at line 50 of file CommandGraph.cpp.

◆ CommandGraph() [2/3]

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

◆ CommandGraph() [3/3]

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

Member Function Documentation

◆ AddNode()

Node& jlm::tooling::CommandGraph::AddNode ( std::unique_ptr< Node node)
inline

Definition at line 63 of file CommandGraph.hpp.

◆ Create()

static std::unique_ptr<CommandGraph> jlm::tooling::CommandGraph::Create ( )
inlinestatic

Definition at line 77 of file CommandGraph.hpp.

◆ GetEntryNode()

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

Definition at line 45 of file CommandGraph.hpp.

◆ GetExitNode()

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

Definition at line 51 of file CommandGraph.hpp.

◆ NumNodes()

size_t jlm::tooling::CommandGraph::NumNodes ( ) const
inlinenoexcept

Definition at line 57 of file CommandGraph.hpp.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ Run()

void jlm::tooling::CommandGraph::Run ( ) const

Definition at line 83 of file CommandGraph.cpp.

◆ SortNodesTopological()

std::vector< CommandGraph::Node * > jlm::tooling::CommandGraph::SortNodesTopological ( const CommandGraph commandGraph)
static

Definition at line 57 of file CommandGraph.cpp.

Member Data Documentation

◆ EntryNode_

Node* jlm::tooling::CommandGraph::EntryNode_
private

Definition at line 84 of file CommandGraph.hpp.

◆ ExitNode_

Node* jlm::tooling::CommandGraph::ExitNode_
private

Definition at line 83 of file CommandGraph.hpp.

◆ Nodes_

std::unordered_set<std::unique_ptr<Node> > jlm::tooling::CommandGraph::Nodes_
private

Definition at line 85 of file CommandGraph.hpp.


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