wreport::bulletin::DDSPrinter Class Reference

Interpreter that prints the bulletin contents and its structure. More...

`#include <dds-printer.h>`

Inheritance diagram for wreport::bulletin::DDSPrinter:

## Public Member Functions

| DDSPrinter (const Bulletin &b, FILE *out, unsigned subset_idx)
| Create a new DDS printer.
void | define_bitmap (unsigned bitmap_size) override
| Request processing of a data present bitmap.
void | define_substituted_value (unsigned pos) override
| Request processing of a substituted value corresponding to position pos in the list or previous variables.
void | define_attribute (Varinfo info, unsigned pos) override
| Request processing of an attribute encoded with info, related to the variable as position pos in the list of previous variables.
void | define_raw_character_data (Varcode code) override
| Request processing of C05yyy raw character data.
void | encode_var (Varinfo info, const Var &var) override
| Encode a variable.
void | encode_associated_field (const Var &var) override
| Encode an attribute for an associated field.
void | r_replication (Varcode code, Varcode delayed_code, const Opcodes &ops) override
| Handle a replicated section.
void | run_d_expansion (Varcode code) override
| Executes the expansion of code, which has been put on top of the opcode stack.
Public Member Functions inherited from wreport::bulletin::UncompressedEncoder
| UncompressedEncoder (const Bulletin &bulletin, unsigned subset_no)
const Var & | peek_var ()
| Get the next variable, without incrementing current_var.
const Var & | get_var ()
| Get the next variable, incrementing current_var by 1.
const Var & | get_var (unsigned pos) const
| Get the variable at the given position.
void | define_bitmap (unsigned bitmap_size) override
| Request processing of a data present bitmap.
void | define_variable (Varinfo info) override
| Request processing, according to info, of a data variable.
void | define_variable_with_associated_field (Varinfo info) override
| Request processing, according to info, of a data variable.
unsigned | define_delayed_replication_factor (Varinfo info) override
| Request processing, according to info, of a data variabile that is significant for controlling the encoding process.
unsigned | define_associated_field_significance (Varinfo info) override
| Request processing of an associated field significance variable (B31021).
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.
Public Member Functions inherited from wreport::bulletin::Interpreter
| Interpreter (const Tables &tables, const Opcodes &opcodes)
| Interpreter (const Interpreter &)=delete
Interpreter & | operator= (const Interpreter &)=delete
void | run ()
| Run the interpreter.
virtual void | b_variable (Varcode code)
| Notify of a B variable entry.
virtual void | c_modifier (Varcode code, Opcodes &next)
| Notify of a C modifier.
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.
virtual void | define_c03_refval_override (Varcode code)
| Request processing of a new value for the reference value of the given B code.

## 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.
Data Fields inherited from wreport::bulletin::UncompressedEncoder
const Subset & | current_subset
| Current subset (used to refer to past variables).
unsigned | current_var = 0
| Index of the next variable to be visited.
Data Fields inherited from wreport::bulletin::Interpreter
const Tables & | tables
std::stack< Opcodes > | opcode_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.
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 prints the bulletin contents and its structure.

## Constructor & Destructor Documentation

## DDSPrinter()

wreport::bulletin::DDSPrinter::DDSPrinter | ( | const Bulletin & | b,
|  | FILE * | out,
|  | unsigned | subset_idx )

Create a new DDS printer.

Parameters

  b | Reference to the bulletin being visited
  out | FILE to print to

References DDSPrinter().

Referenced by DDSPrinter().

## Member Function Documentation

## define_attribute()

void wreport::bulletin::DDSPrinter::define_attribute | ( | Varinfo | info,
|  | unsigned | pos )

override virtual

Request processing of an attribute encoded with info, related to the variable as position pos in the list of previous variables.

Reimplemented from wreport::bulletin::Interpreter.

## define_bitmap()

void wreport::bulletin::DDSPrinter::define_bitmap | ( | unsigned | bitmap_size | ) |

override virtual

Request processing of a data present bitmap.

Parameters

  code | The C modifier code that defines the bitmap
  rep_code | The R replicator that defines the bitmap
  delayed_code | The B delayed replicator that defines the bitmap length (it is 0 if the length is encoded in the YYY part of rep_code
  ops | The replicated opcodes that define the bitmap

Returns
  The bitmap that has been processed.

Reimplemented from wreport::bulletin::Interpreter.

## define_raw_character_data()

void wreport::bulletin::DDSPrinter::define_raw_character_data | ( | Varcode | code | ) |

override virtual

Request processing of C05yyy raw character data.

Reimplemented from wreport::bulletin::Interpreter.

## define_substituted_value()

void wreport::bulletin::DDSPrinter::define_substituted_value | ( | unsigned | pos | ) |

override virtual

Request processing of a substituted value corresponding to position pos in the list or previous variables.

Reimplemented from wreport::bulletin::Interpreter.

## encode_associated_field()

void wreport::bulletin::DDSPrinter::encode_associated_field | ( | const Var & | var | ) |

override virtual

Encode an attribute for an associated field.

Var is the variable that the associated field refers to. The actual value of the associated field can be looked up using the functions in this->associated_field.

Reimplemented from wreport::bulletin::UncompressedEncoder.

## encode_var()

void wreport::bulletin::DDSPrinter::encode_var | ( | Varinfo | info,
|  | const Var & | var )

override virtual

Encode a variable.

By default, this raises error_unimplemented. For decoders that encode normal variables, delayed replication factors, bitmap delayed replication factors, and associated field significances in the same way, can just override this method and use the default define_* implementations.

Reimplemented from wreport::bulletin::UncompressedEncoder.

## r_replication()

void wreport::bulletin::DDSPrinter::r_replication | ( | Varcode | code,
|  | Varcode | delayed_code,
|  | const Opcodes & | ops )

override virtual

Handle a replicated section.

Parameters

  code | The R replication code
  delayed_code | The delayed replication B code, or 0 if delayed replication is not used
  ops | The replicated operators

Reimplemented from wreport::bulletin::Interpreter.

## run_d_expansion()

void wreport::bulletin::DDSPrinter::run_d_expansion | ( | Varcode | code | ) |

override virtual

Executes the expansion of code, which has been put on top of the opcode stack.

By default it just calls run(), but it can be overridden to execute operations before and after.

Parameters

  code | The D code that is being run

Reimplemented from wreport::bulletin::Interpreter.

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

- dds-printer.h