LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line_console.h File Reference

Running progress log of a LINE solver run (the "solver console"). More...

#include <algorithm>
#include <cctype>
#include <chrono>
#include <cstdarg>
#include <cstdio>
#include <string>
#include <vector>
Include dependency graph for line_console.h:

Go to the source code of this file.

Classes

class  line::util::LineConsole
class  line::util::LineConsole::Run
 RAII guard: opens a run on construction, closes it on scope exit. More...
class  line::util::LineConsole::Quiet
 RAII guard that suppresses structure-compile detail while it lives. More...
class  line::util::LineConsole::OwnModelCompile
 Lift the compile detail rule while the run compiles its OWN model. More...

Namespaces

namespace  line
namespace  line::util

Enumerations

enum class  line::util::VerboseLevel { line::util::SILENT = 0 , line::util::STD = 1 , line::util::DEBUG = 2 }
 Session verbosity, the twin of MATLAB's VerboseLevel, jline.VerboseLevel and python's line_solver.constants.VerboseLevel. More...

Detailed Description

Running progress log of a LINE solver run (the "solver console").

The console narrates what a solver is doing while it does it: reading the model, compiling the network structure, computing chains and demands, resolving the method, iterating, and closing with the figures of merit. Each line carries the elapsed time since the run started:

[ 0.014s] compiling the network structure of model 'cqn'
[ 0.031s] computing the routing table and the chains
[ 0.052s] recognized a closed queueing network: 3 stations, 1 class, 1 chain
[ 0.061s] AMVA sweep 10: queue-length residual 1.11e-01, X = 1.2225

It prints no tables: the result table stays the caller's own printer. THE CONSOLE IS VerboseLevel::DEBUG: it narrates exactly when the run is at DEBUG and is silent at every lower level, and it never alters a numerical result. There is no separate console switch – the console was one, until it became clear that a running progress log IS what a debug verbosity is for, and two switches for one channel only let a session ask for DEBUG and get nothing. line-cli asks for it with -v debug; a library caller with set_verbose().

Nested runs (an inner solver driven by an ensemble) do not narrate: only the outermost run writes. Use is_active() to suppress a legacy print, owns_log() to emit.

Mirrors MATLAB matlab/src/io/LineConsole.m, jline.io.LineConsole and python line_solver/api/io/console.py.

Definition in file line_console.h.