12 #ifndef LINKGRAPHJOB_H
13 #define LINKGRAPHJOB_H
15 #include "../thread/thread.h"
21 typedef std::list<Path *> PathList;
50 void Init(uint supply);
158 base_anno(base_anno) {}
176 return FakePointer(this->
operator*());
261 (*this)[to].AddDemand(amount);
339 #define FOR_ALL_LINK_GRAPH_JOBS(var) FOR_ALL_ITEMS_FROM(LinkGraphJob, link_graph_job_index, var, 0)
348 Path(NodeID n,
bool source =
false);
374 return Clamp(free, PATH_CAP_MIN_FREE, PATH_CAP_MAX_FREE) * PATH_CAP_MULTIPLIER /
max(total, 1U);
406 if (this->
parent != NULL) {
413 void Fork(
Path *base, uint cap,
int free_cap, uint dist);
421 PATH_CAP_MULTIPLIER = 16,
422 PATH_CAP_MIN_FREE = (INT_MIN + 1) / PATH_CAP_MULTIPLIER,
423 PATH_CAP_MAX_FREE = (INT_MAX - 1) / PATH_CAP_MULTIPLIER