Rosetta
2021.16

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_ 
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.
protocols::jd3::JobDigraphUpdater::JobDigraphUpdater  (  JobDigraphOP  job_digraph  ) 
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_.

inline 
References orig_num_nodes_.
Referenced by protocols::jd3::job_distributors::JobExtractor::not_done().

private 
Referenced by add_edge_to_new_node(), add_node(), and job_dag().

private 
Referenced by add_edge_to_new_node(), and orig_num_nodes().