![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
One finite capacity region, resolved to what the event loop needs. More...
#include <line/solvers/ldes/ldes_region.h>
Public Member Functions | |
| bool | would_exceed (std::size_t r) const |
| True when one more job of r would violate ANY of the region's caps. | |
| void | enter (std::size_t r) |
| void | leave (std::size_t r) |
| void | update (double now) |
| Advance the region's time integrals to now. | |
| bool | drops (std::size_t r) const |
Public Attributes | |
| std::string | name |
| std::vector< bool > | members |
| per station | |
| double | global_cap = -1.0 |
| -1 = unbounded | |
| std::vector< double > | class_cap |
| per class, -1 = unbounded | |
| double | max_mem = -1.0 |
| -1 = unbounded | |
| std::vector< double > | class_size |
| memory footprint per class | |
| std::vector< double > | class_weight |
| occupancy weight per class | |
| std::vector< lang::DropStrategy > | rule |
| per class: DROP or WAITQ | |
| std::vector< std::vector< double > > | lincon_A |
| std::vector< double > | lincon_b |
| std::vector< double > | jobs |
| per class, inside the region | |
| double | mem = 0.0 |
| weighted memory in use | |
| std::vector< double > | blocked |
| per class, parked outside by WAITQ | |
| std::vector< double > | dropped |
| per class, lost | |
| std::vector< double > | tot_jobs |
| std::vector< double > | tot_weight |
| std::vector< double > | tot_mem |
| double | last_update = 0.0 |
| std::vector< double > | completed |
| std::vector< double > | resp_sum |
| std::vector< double > | resp_cnt |
| std::vector< double > | entry_time |
| unused placeholder for per-job entry | |
One finite capacity region, resolved to what the event loop needs.
Definition at line 51 of file ldes_region.h.
|
inline |
Definition at line 131 of file ldes_region.h.
References rule, and line::lang::WAITQ.
|
inline |
Definition at line 101 of file ldes_region.h.
References class_size, jobs, and mem.
|
inline |
Definition at line 105 of file ldes_region.h.
References class_size, jobs, and mem.
|
inline |
Advance the region's time integrals to now.
Call BEFORE any change to jobs, exactly as the station integrals require.
The JOB count and the WEIGHTED occupancy are separate series because a region may cap either: reporting only the raw count hides a region that is memory-bound rather than job-bound.
Definition at line 118 of file ldes_region.h.
References class_size, class_weight, jobs, last_update, tot_jobs, tot_mem, and tot_weight.
|
inline |
True when one more job of r would violate ANY of the region's caps.
The memory rule is JMT's: admit iff used + incoming <= max, with an epsilon because a footprint may be fractional and the running total accumulates rounding.
Definition at line 82 of file ldes_region.h.
References class_cap, class_size, global_cap, jobs, lincon_A, lincon_b, max_mem, and mem.
| std::vector<double> line::ldes::engine::Region::blocked |
per class, parked outside by WAITQ
Definition at line 66 of file ldes_region.h.
| std::vector<double> line::ldes::engine::Region::class_cap |
per class, -1 = unbounded
Definition at line 55 of file ldes_region.h.
Referenced by would_exceed().
| std::vector<double> line::ldes::engine::Region::class_size |
memory footprint per class
Definition at line 57 of file ldes_region.h.
Referenced by enter(), leave(), update(), and would_exceed().
| std::vector<double> line::ldes::engine::Region::class_weight |
| std::vector<double> line::ldes::engine::Region::completed |
Definition at line 72 of file ldes_region.h.
| std::vector<double> line::ldes::engine::Region::dropped |
per class, lost
Definition at line 67 of file ldes_region.h.
| std::vector<double> line::ldes::engine::Region::entry_time |
unused placeholder for per-job entry
Definition at line 73 of file ldes_region.h.
| double line::ldes::engine::Region::global_cap = -1.0 |
| std::vector<double> line::ldes::engine::Region::jobs |
per class, inside the region
Definition at line 64 of file ldes_region.h.
Referenced by enter(), leave(), update(), and would_exceed().
| double line::ldes::engine::Region::last_update = 0.0 |
Definition at line 71 of file ldes_region.h.
Referenced by update().
| std::vector<std::vector<double> > line::ldes::engine::Region::lincon_A |
Definition at line 60 of file ldes_region.h.
Referenced by would_exceed().
| std::vector<double> line::ldes::engine::Region::lincon_b |
Definition at line 61 of file ldes_region.h.
Referenced by would_exceed().
| double line::ldes::engine::Region::max_mem = -1.0 |
| double line::ldes::engine::Region::mem = 0.0 |
weighted memory in use
Definition at line 65 of file ldes_region.h.
Referenced by enter(), leave(), and would_exceed().
| std::vector<bool> line::ldes::engine::Region::members |
per station
Definition at line 53 of file ldes_region.h.
| std::string line::ldes::engine::Region::name |
Definition at line 52 of file ldes_region.h.
| std::vector<double> line::ldes::engine::Region::resp_cnt |
Definition at line 72 of file ldes_region.h.
| std::vector<double> line::ldes::engine::Region::resp_sum |
Definition at line 72 of file ldes_region.h.
| std::vector<lang::DropStrategy> line::ldes::engine::Region::rule |
| std::vector<double> line::ldes::engine::Region::tot_jobs |
Definition at line 70 of file ldes_region.h.
Referenced by update().
| std::vector<double> line::ldes::engine::Region::tot_mem |
Definition at line 70 of file ldes_region.h.
Referenced by update().
| std::vector<double> line::ldes::engine::Region::tot_weight |
Definition at line 70 of file ldes_region.h.
Referenced by update().