Rosetta  2021.16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
protocols::jd3::JobDigraphUpdater Class Reference

This class defines the set of operations that a JobQueen can perform to update the JobDigraph that she originally gave to the JobDistributor. In particular, the JobQueen may only update the JobDigraph by adding new nodes to the graph (which will receive incrementally larger indexes) and then adding edges to the graph such that the head node for the edge must land on one of the newly added nodes in the graph. The JobDistributor will hand the JobQueen a JobDigraphUpdater through the JobQueen's update_job_digraph method, and in this call, the JobQueen may add as many nodes as she wishes, and as many edges that land on those new nodes, but when the method exits, those nodes petrify: the JobQueen may not add any more edges that land on those new nodes. More...

#include <JobDigraph.hh>

Public Member Functions

 JobDigraphUpdater (JobDigraphOP)
 
JobDigraphCOP job_dag () const
 Read access to the JobDigraph that the updater holds. More...
 
void add_node ()
 Add a new node to the JobDigraph that this class holds. More...
 
void add_node (std::string node_type_label)
 Add a new node to the JobDigraph that this class holds, setting the node type. More...
 
void add_edge_to_new_node (core::Size tail_node, core::Size head_node)
 Add an edge to the graph where the head_node for this edge has to be one of the nodes added to the graph since the creation of this updater. More...
 
core::Size orig_num_nodes () const
 

Private Attributes

JobDigraphOP job_digraph_
 
core::Size orig_num_nodes_
 

Detailed Description

This class defines the set of operations that a JobQueen can perform to update the JobDigraph that she originally gave to the JobDistributor. In particular, the JobQueen may only update the JobDigraph by adding new nodes to the graph (which will receive incrementally larger indexes) and then adding edges to the graph such that the head node for the edge must land on one of the newly added nodes in the graph. The JobDistributor will hand the JobQueen a JobDigraphUpdater through the JobQueen's update_job_digraph method, and in this call, the JobQueen may add as many nodes as she wishes, and as many edges that land on those new nodes, but when the method exits, those nodes petrify: the JobQueen may not add any more edges that land on those new nodes.

Constructor & Destructor Documentation

protocols::jd3::JobDigraphUpdater::JobDigraphUpdater ( JobDigraphOP  job_digraph)

Member Function Documentation

void protocols::jd3::JobDigraphUpdater::add_edge_to_new_node ( core::Size  tail_node,
core::Size  head_node 
)

Add an edge to the graph where the head_node for this edge has to be one of the nodes added to the graph since the creation of this updater.

References job_digraph_, and orig_num_nodes_.

void protocols::jd3::JobDigraphUpdater::add_node ( )

Add a new node to the JobDigraph that this class holds.

References job_digraph_.

void protocols::jd3::JobDigraphUpdater::add_node ( std::string  node_type_label)

Add a new node to the JobDigraph that this class holds, setting the node type.

References job_digraph_.

JobDigraphCOP protocols::jd3::JobDigraphUpdater::job_dag ( ) const

Read access to the JobDigraph that the updater holds.

References job_digraph_.

core::Size protocols::jd3::JobDigraphUpdater::orig_num_nodes ( ) const
inline

Member Data Documentation

JobDigraphOP protocols::jd3::JobDigraphUpdater::job_digraph_
private
core::Size protocols::jd3::JobDigraphUpdater::orig_num_nodes_
private

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