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)
346 Path(NodeID n,
bool source =
false);
372 return Clamp(free, PATH_CAP_MIN_FREE, PATH_CAP_MAX_FREE) * PATH_CAP_MULTIPLIER /
max(total, 1U);
404 if (this->
parent != NULL) {
411 void Fork(
Path *base, uint cap,
int free_cap, uint dist);
419 PATH_CAP_MULTIPLIER = 16,
420 PATH_CAP_MIN_FREE = (INT_MIN + 1) / PATH_CAP_MULTIPLIER,
421 PATH_CAP_MAX_FREE = (INT_MAX - 1) / PATH_CAP_MULTIPLIER