libwreport  3.29
Public Member Functions | Data Fields
wreport::bulletin::ScanFeatures Class Reference

Interpreter that scans what features are used by a bulletin. More...

#include <dds-scanfeatures.h>

Inheritance diagram for wreport::bulletin::ScanFeatures:
wreport::bulletin::Interpreter

Public Member Functions

 ScanFeatures (const Tables &tables, const Opcodes &opcodes)
 
void c_modifier (Varcode code, Opcodes &next) override
 Notify of a C modifier. More...
 
void r_replication (Varcode code, Varcode delayed_code, const Opcodes &ops) override
 Handle a replicated section. More...
 
void define_variable (Varinfo info) override
 Request processing, according to info, of a data variable.
 
void define_bitmap (unsigned bitmap_size) override
 Request processing of a data present bitmap. More...
 
unsigned define_associated_field_significance (Varinfo info) override
 Request processing of an associated field significance variable (B31021). More...
 
unsigned define_bitmap_delayed_replication_factor (Varinfo info) override
 Request processing of a delayed replication factor variable used to encode the size of a bitmap. More...
 
- Public Member Functions inherited from wreport::bulletin::Interpreter
 Interpreter (const Tables &tables, const Opcodes &opcodes)
 
 Interpreter (const Interpreter &)=delete
 
Interpreteroperator= (const Interpreter &)=delete
 
void run ()
 Run the interpreter.
 
virtual void b_variable (Varcode code)
 Notify of a B variable entry. More...
 
virtual void r_bitmap (Varcode code, Varcode delayed_code, const Opcodes &ops)
 Handle a replicated section which defines a bitmap.
 
virtual void run_r_repetition (unsigned cur, unsigned total)
 Executes a repetition of the opcodes on top of the stack. More...
 
virtual void run_d_expansion (Varcode code)
 Executes the expansion of code, which has been put on top of the opcode stack. More...
 
virtual void define_variable_with_associated_field (Varinfo info)
 Request processing, according to info, of a data variable.
 
virtual unsigned define_delayed_replication_factor (Varinfo info)
 Request processing, according to info, of a data variabile that is significant for controlling the encoding process. More...
 
virtual void define_substituted_value (unsigned pos)
 Request processing of a substituted value corresponding to position pos in the list or previous variables.
 
virtual void define_attribute (Varinfo info, unsigned pos)
 Request processing of an attribute encoded with info, related to the variable as position pos in the list of previous variables.
 
virtual void define_raw_character_data (Varcode code)
 Request processing of C05yyy raw character data.
 
virtual void define_c03_refval_override (Varcode code)
 Request processing of a new value for the reference value of the given B code.
 

Data Fields

std::set< std::string > features
 Features that have been found.
 
- Data Fields inherited from wreport::bulletin::Interpreter
const Tablestables
 
std::stack< Opcodesopcode_stack
 
Bitmaps bitmaps
 Bitmap iteration.
 
AssociatedField associated_field
 Current associated field state.
 
int c_scale_change = 0
 Current value of scale change from C modifier.
 
int c_width_change = 0
 Current value of width change from C modifier.
 
int c_scale_ref_width_increase = 0
 Increase of scale, reference value and data width.
 
int c_string_len_override = 0
 Current value of string length override from C08 modifiers (0 for no override)
 
std::map< wreport::Varcode, uint32_t > c03_refval_overrides
 Current reference value overrides.
 
unsigned c03_refval_override_bits = 0
 Set to the number of reference value override bits while reading the override values.
 

Additional Inherited Members

- Static Public Member Functions inherited from wreport::bulletin::Interpreter
static void print_c_modifier (FILE *out, Varcode code, Opcodes &nex)
 Print a description of this C modifier.
 
- Protected Member Functions inherited from wreport::bulletin::Interpreter
Varinfo get_varinfo (Varcode code)
 Return a Varinfo for the given Varcode, applying all relevant C modifications that are currently active.
 

Detailed Description

Interpreter that scans what features are used by a bulletin.

Member Function Documentation

◆ c_modifier()

void wreport::bulletin::ScanFeatures::c_modifier ( Varcode  code,
Opcodes next 
)
overridevirtual

Notify of a C modifier.

Whenever the modifier is a supported one, this is followed by an invocation of one of the specific c_* methods.

Parameters
codeThe C modifier code

Reimplemented from wreport::bulletin::Interpreter.

◆ define_associated_field_significance()

unsigned wreport::bulletin::ScanFeatures::define_associated_field_significance ( Varinfo  info)
overridevirtual

Request processing of an associated field significance variable (B31021).

Returns
the associated field significance value

Reimplemented from wreport::bulletin::Interpreter.

◆ define_bitmap()

void wreport::bulletin::ScanFeatures::define_bitmap ( unsigned  bitmap_size)
overridevirtual

Request processing of a data present bitmap.

Parameters
codeThe C modifier code that defines the bitmap
rep_codeThe R replicator that defines the bitmap
delayed_codeThe B delayed replicator that defines the bitmap length (it is 0 if the length is encoded in the YYY part of rep_code
opsThe replicated opcodes that define the bitmap
Returns
The bitmap that has been processed.

Reimplemented from wreport::bulletin::Interpreter.

◆ define_bitmap_delayed_replication_factor()

unsigned wreport::bulletin::ScanFeatures::define_bitmap_delayed_replication_factor ( Varinfo  info)
overridevirtual

Request processing of a delayed replication factor variable used to encode the size of a bitmap.

Returns
the repetition count

Reimplemented from wreport::bulletin::Interpreter.

◆ r_replication()

void wreport::bulletin::ScanFeatures::r_replication ( Varcode  code,
Varcode  delayed_code,
const Opcodes ops 
)
overridevirtual

Handle a replicated section.

Parameters
codeThe R replication code
delayed_codeThe delayed replication B code, or 0 if delayed replication is not used
opsThe replicated operators

Reimplemented from wreport::bulletin::Interpreter.


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