Table of Contents

Class NcDiagnosticProgress

Namespace
Hi.NcParsers
Assembly
HiMech.dll

Helper that emits NcDiagnostic records — retaining them in Diagnostics (their canonical home) and forwarding each to an IProgress<T> of IMessage sink for live consumption. Provides one method per (Category, Severity) pair, each with an optional Sentence overload locating the issue in the NC source.

public class NcDiagnosticProgress : IProgress<NcDiagnostic>
Inheritance
NcDiagnosticProgress
Implements
Inherited Members
Extension Methods

Constructors

NcDiagnosticProgress(IProgress<IMessage>)

Creates a NcDiagnosticProgress that retains every reported NcDiagnostic in Diagnostics and also forwards it to shippingProgress for live consumption.

public NcDiagnosticProgress(IProgress<IMessage> shippingProgress)

Parameters

shippingProgress IProgress<IMessage>

Sink that receives each diagnostic. An IProgress<T> of object (e.g. the legacy SessionProgress0) is accepted here via IProgress<T> contravariance, so existing call sites keep forwarding diagnostics to the legacy message panel unchanged during the migration.

Properties

Diagnostics

All diagnostics reported through this instance, in report order. This is the canonical home for NC diagnostics — consumers read from here rather than from a shared, mixed message collection.

public IReadOnlyList<NcDiagnostic> Diagnostics { get; }

Property Value

IReadOnlyList<NcDiagnostic>

Methods

AsMessageSink(ISentenceCarrier)

Returns an IProgress<T> of IMessage face over this sink: each reported message is wrapped into an NcDiagnostic (an already-typed NcDiagnostic passes through; sentenceCarrier anchors the wrapped ones) and reported here. Lets sink-agnostic IMessage producers (e.g. the HardNc parse pipeline) feed the NC-diagnostic home.

public IProgress<IMessage> AsMessageSink(ISentenceCarrier sentenceCarrier = null)

Parameters

sentenceCarrier ISentenceCarrier

Optional NC-source anchor for the wrapped messages.

Returns

IProgress<IMessage>

Clear()

Removes all diagnostics (e.g. on runtime / controller reset).

public void Clear()

ConfigurationError(ISentenceCarrier, string, string, object)

Emits Configuration + Error located at sentenceCarrier.

public void ConfigurationError(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

ConfigurationError(string, string, object)

Emits Configuration + Error (dependency/config missing, cannot proceed).

public void ConfigurationError(string id, string text, object detail = null)

Parameters

id string
text string
detail object

ConfigurationMessage(ISentenceCarrier, string, string)

Emits Configuration + Message located at sentenceCarrier.

public void ConfigurationMessage(ISentenceCarrier sentenceCarrier, string id, string text)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string

ConfigurationMessage(string, string)

Emits Configuration + Message (dependency/config applied, informational event).

public void ConfigurationMessage(string id, string text)

Parameters

id string
text string

ConfigurationWarning(ISentenceCarrier, string, string, object)

Emits Configuration + Warning located at sentenceCarrier.

public void ConfigurationWarning(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

ConfigurationWarning(string, string, object)

Emits Configuration + Warning (dependency/config missing, using fallback).

public void ConfigurationWarning(string id, string text, object detail = null)

Parameters

id string
text string
detail object

Report(NcDiagnostic)

Reports a progress update.

public void Report(NcDiagnostic value)

Parameters

value NcDiagnostic

The value of the updated progress.

SystemError(ISentenceCarrier, string, string, object)

Emits System + Error located at sentenceCarrier.

public void SystemError(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

SystemError(string, string, object)

Emits System + Error (pipeline exception or unconsidered case).

public void SystemError(string id, string text, object detail = null)

Parameters

id string
text string
detail object

SystemMessage(ISentenceCarrier, string, string)

Emits System + Message located at sentenceCarrier.

public void SystemMessage(ISentenceCarrier sentenceCarrier, string id, string text)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string

SystemMessage(string, string)

Emits System + Message (pipeline lifecycle / informational).

public void SystemMessage(string id, string text)

Parameters

id string
text string

UnsupportedError(ISentenceCarrier, string, string, object)

Emits Unsupported + Error located at sentenceCarrier.

public void UnsupportedError(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

UnsupportedError(string, string, object)

Emits Unsupported + Error (recognized but unimplemented, likely matters).

public void UnsupportedError(string id, string text, object detail = null)

Parameters

id string
text string
detail object

UnsupportedMessage(ISentenceCarrier, string, string, object)

Emits Unsupported + Message located at sentenceCarrier.

public void UnsupportedMessage(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

UnsupportedMessage(string, string, object)

Emits Unsupported + Message (recognized, intentionally not simulated, considered safe / no-op offline).

public void UnsupportedMessage(string id, string text, object detail = null)

Parameters

id string
text string
detail object

UnsupportedWarning(ISentenceCarrier, string, string, object)

Emits Unsupported + Warning located at sentenceCarrier.

public void UnsupportedWarning(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

UnsupportedWarning(string, string, object)

Emits Unsupported + Warning (recognized but unimplemented, likely harmless).

public void UnsupportedWarning(string id, string text, object detail = null)

Parameters

id string
text string
detail object

ValidationError(ISentenceCarrier, string, string, object)

Emits Validation + Error located at sentenceCarrier.

public void ValidationError(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

ValidationError(string, string, object)

Emits Validation + Error (manufacturing/physics is unfeasible).

public void ValidationError(string id, string text, object detail = null)

Parameters

id string
text string
detail object

ValidationWarning(ISentenceCarrier, string, string, object)

Emits Validation + Warning located at sentenceCarrier.

public void ValidationWarning(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)

Parameters

sentenceCarrier ISentenceCarrier
id string
text string
detail object

ValidationWarning(string, string, object)

Emits Validation + Warning (manufacturing/physics may be unfeasible).

public void ValidationWarning(string id, string text, object detail = null)

Parameters

id string
text string
detail object

Events

Cleared

Raised after Clear() empties the collection.

public event Action Cleared

Event Type

Action

MessageAdded

Raised after a diagnostic has been appended. Carries the index it landed at in Diagnostics and the appended diagnostic, so a consumer can place it and reach nearby items by indexing into Diagnostics.

public event Action<int, NcDiagnostic> MessageAdded

Event Type

Action<int, NcDiagnostic>