Link graph job node. More...
#include <linkgraphjob.h>
Public Member Functions | |
Node (LinkGraphJob *lgj, NodeID node) | |
Constructor. | |
Edge | operator[] (NodeID to) const |
Retrieve an edge starting at this node. | |
EdgeIterator | Begin () const |
Iterator for the "begin" of the edge array. | |
EdgeIterator | End () const |
Iterator for the "end" of the edge array. | |
uint | UndeliveredSupply () const |
Get amount of supply that hasn't been delivered, yet. | |
FlowStatMap & | Flows () |
Get the flows running through this node. | |
const FlowStatMap & | Flows () const |
Get a constant version of the flows running through this node. | |
PathSet & | Paths () |
Get the paths this node is part of. | |
const PathSet & | Paths () const |
Get a constant version of the paths this node is part of. | |
void | DeliverSupply (NodeID to, uint amount) |
Deliver some supply, adding demand to the respective edge. | |
Private Attributes | |
NodeAnnotation & | node_anno |
Annotation being wrapped. | |
EdgeAnnotation * | edge_annos |
Edge annotations belonging to this node. |
Link graph job node.
Wraps a constant link graph node and a modifiable node annotation.
Definition at line 180 of file linkgraphjob.h.
LinkGraphJob::Node::Node | ( | LinkGraphJob * | lgj, | |
NodeID | node | |||
) | [inline] |
Constructor.
lgj | Job to take the node from. | |
node | ID of the node. |
Definition at line 191 of file linkgraphjob.h.
EdgeIterator LinkGraphJob::Node::Begin | ( | ) | const [inline] |
Iterator for the "begin" of the edge array.
Only edges with capacity are iterated. The others are skipped.
Reimplemented from LinkGraph::ConstNode.
Definition at line 209 of file linkgraphjob.h.
References edge_annos, LinkGraph::NodeWrapper< const BaseNode, const BaseEdge >::edges, and LinkGraph::NodeWrapper< const BaseNode, const BaseEdge >::index.
void LinkGraphJob::Node::DeliverSupply | ( | NodeID | to, | |
uint | amount | |||
) | [inline] |
Deliver some supply, adding demand to the respective edge.
to | Destination for supply. | |
amount | Amount of supply to be delivered. |
Definition at line 253 of file linkgraphjob.h.
References node_anno, and LinkGraphJob::NodeAnnotation::undelivered_supply.
EdgeIterator LinkGraphJob::Node::End | ( | ) | const [inline] |
Iterator for the "end" of the edge array.
Only edges with capacity are iterated. The others are skipped.
Reimplemented from LinkGraph::ConstNode.
Definition at line 216 of file linkgraphjob.h.
References edge_annos, and LinkGraph::NodeWrapper< const BaseNode, const BaseEdge >::edges.
FlowStatMap& LinkGraphJob::Node::Flows | ( | ) | [inline] |
Get the flows running through this node.
Definition at line 228 of file linkgraphjob.h.
References LinkGraphJob::NodeAnnotation::flows, and node_anno.
const FlowStatMap& LinkGraphJob::Node::Flows | ( | ) | const [inline] |
Get a constant version of the flows running through this node.
Definition at line 234 of file linkgraphjob.h.
References LinkGraphJob::NodeAnnotation::flows, and node_anno.
Edge LinkGraphJob::Node::operator[] | ( | NodeID | to | ) | const [inline] |
Retrieve an edge starting at this node.
Mind that this returns an object, not a reference.
to | Remote end of the edge. |
Reimplemented from LinkGraph::ConstNode.
Definition at line 202 of file linkgraphjob.h.
References edge_annos, and LinkGraph::NodeWrapper< const BaseNode, const BaseEdge >::edges.
const PathSet& LinkGraphJob::Node::Paths | ( | ) | const [inline] |
Get a constant version of the paths this node is part of.
Definition at line 246 of file linkgraphjob.h.
References node_anno, and LinkGraphJob::NodeAnnotation::paths.
PathSet& LinkGraphJob::Node::Paths | ( | ) | [inline] |
Get the paths this node is part of.
Definition at line 240 of file linkgraphjob.h.
References node_anno, and LinkGraphJob::NodeAnnotation::paths.
uint LinkGraphJob::Node::UndeliveredSupply | ( | ) | const [inline] |
Get amount of supply that hasn't been delivered, yet.
Definition at line 222 of file linkgraphjob.h.
References node_anno, and LinkGraphJob::NodeAnnotation::undelivered_supply.