LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::ldes::engine::Region Struct Reference

One finite capacity region, resolved to what the event loop needs. More...

#include <line/solvers/ldes/ldes_region.h>

Collaboration diagram for line::ldes::engine::Region:

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::DropStrategyrule
 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

Detailed Description

One finite capacity region, resolved to what the event loop needs.

Definition at line 51 of file ldes_region.h.

Member Function Documentation

◆ drops()

bool line::ldes::engine::Region::drops ( std::size_t r) const
inline

Definition at line 131 of file ldes_region.h.

References rule, and line::lang::WAITQ.

◆ enter()

void line::ldes::engine::Region::enter ( std::size_t r)
inline

Definition at line 101 of file ldes_region.h.

References class_size, jobs, and mem.

◆ leave()

void line::ldes::engine::Region::leave ( std::size_t r)
inline

Definition at line 105 of file ldes_region.h.

References class_size, jobs, and mem.

◆ update()

void line::ldes::engine::Region::update ( double now)
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.

◆ would_exceed()

bool line::ldes::engine::Region::would_exceed ( std::size_t r) const
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.

Member Data Documentation

◆ blocked

std::vector<double> line::ldes::engine::Region::blocked

per class, parked outside by WAITQ

Definition at line 66 of file ldes_region.h.

◆ class_cap

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().

◆ class_size

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().

◆ class_weight

std::vector<double> line::ldes::engine::Region::class_weight

occupancy weight per class

Definition at line 58 of file ldes_region.h.

Referenced by update().

◆ completed

std::vector<double> line::ldes::engine::Region::completed

Definition at line 72 of file ldes_region.h.

◆ dropped

std::vector<double> line::ldes::engine::Region::dropped

per class, lost

Definition at line 67 of file ldes_region.h.

◆ entry_time

std::vector<double> line::ldes::engine::Region::entry_time

unused placeholder for per-job entry

Definition at line 73 of file ldes_region.h.

◆ global_cap

double line::ldes::engine::Region::global_cap = -1.0

-1 = unbounded

Definition at line 54 of file ldes_region.h.

Referenced by would_exceed().

◆ jobs

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().

◆ last_update

double line::ldes::engine::Region::last_update = 0.0

Definition at line 71 of file ldes_region.h.

Referenced by update().

◆ lincon_A

std::vector<std::vector<double> > line::ldes::engine::Region::lincon_A

Definition at line 60 of file ldes_region.h.

Referenced by would_exceed().

◆ lincon_b

std::vector<double> line::ldes::engine::Region::lincon_b

Definition at line 61 of file ldes_region.h.

Referenced by would_exceed().

◆ max_mem

double line::ldes::engine::Region::max_mem = -1.0

-1 = unbounded

Definition at line 56 of file ldes_region.h.

Referenced by would_exceed().

◆ mem

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().

◆ members

std::vector<bool> line::ldes::engine::Region::members

per station

Definition at line 53 of file ldes_region.h.

◆ name

std::string line::ldes::engine::Region::name

Definition at line 52 of file ldes_region.h.

◆ resp_cnt

std::vector<double> line::ldes::engine::Region::resp_cnt

Definition at line 72 of file ldes_region.h.

◆ resp_sum

std::vector<double> line::ldes::engine::Region::resp_sum

Definition at line 72 of file ldes_region.h.

◆ rule

std::vector<lang::DropStrategy> line::ldes::engine::Region::rule

per class: DROP or WAITQ

Definition at line 59 of file ldes_region.h.

Referenced by drops().

◆ tot_jobs

std::vector<double> line::ldes::engine::Region::tot_jobs

Definition at line 70 of file ldes_region.h.

Referenced by update().

◆ tot_mem

std::vector<double> line::ldes::engine::Region::tot_mem

Definition at line 70 of file ldes_region.h.

Referenced by update().

◆ tot_weight

std::vector<double> line::ldes::engine::Region::tot_weight

Definition at line 70 of file ldes_region.h.

Referenced by update().


The documentation for this struct was generated from the following file: