Class NcDiagnosticProgress
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
shippingProgressIProgress<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
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
sentenceCarrierISentenceCarrierOptional NC-source anchor for the wrapped messages.
Returns
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
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
ConfigurationError(string, string, object)
Emits Configuration + Error (dependency/config missing, cannot proceed).
public void ConfigurationError(string id, string text, object detail = null)
Parameters
ConfigurationMessage(ISentenceCarrier, string, string)
Emits Configuration + Message located at sentenceCarrier.
public void ConfigurationMessage(ISentenceCarrier sentenceCarrier, string id, string text)
Parameters
sentenceCarrierISentenceCarrieridstringtextstring
ConfigurationMessage(string, string)
Emits Configuration + Message (dependency/config applied, informational event).
public void ConfigurationMessage(string id, string text)
Parameters
ConfigurationWarning(ISentenceCarrier, string, string, object)
Emits Configuration + Warning located at sentenceCarrier.
public void ConfigurationWarning(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)
Parameters
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
ConfigurationWarning(string, string, object)
Emits Configuration + Warning (dependency/config missing, using fallback).
public void ConfigurationWarning(string id, string text, object detail = null)
Parameters
Report(NcDiagnostic)
Reports a progress update.
public void Report(NcDiagnostic value)
Parameters
valueNcDiagnosticThe value of the updated progress.
SystemError(ISentenceCarrier, string, string, object)
public void SystemError(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)
Parameters
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
SystemError(string, string, object)
public void SystemError(string id, string text, object detail = null)
Parameters
SystemMessage(ISentenceCarrier, string, string)
public void SystemMessage(ISentenceCarrier sentenceCarrier, string id, string text)
Parameters
sentenceCarrierISentenceCarrieridstringtextstring
SystemMessage(string, string)
public void SystemMessage(string id, string text)
Parameters
UnsupportedError(ISentenceCarrier, string, string, object)
Emits Unsupported + Error located at sentenceCarrier.
public void UnsupportedError(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)
Parameters
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
UnsupportedError(string, string, object)
Emits Unsupported + Error (recognized but unimplemented, likely matters).
public void UnsupportedError(string id, string text, object detail = null)
Parameters
UnsupportedMessage(ISentenceCarrier, string, string, object)
Emits Unsupported + Message located at sentenceCarrier.
public void UnsupportedMessage(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)
Parameters
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
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
UnsupportedWarning(ISentenceCarrier, string, string, object)
Emits Unsupported + Warning located at sentenceCarrier.
public void UnsupportedWarning(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)
Parameters
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
UnsupportedWarning(string, string, object)
Emits Unsupported + Warning (recognized but unimplemented, likely harmless).
public void UnsupportedWarning(string id, string text, object detail = null)
Parameters
ValidationError(ISentenceCarrier, string, string, object)
Emits Validation + Error located at sentenceCarrier.
public void ValidationError(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)
Parameters
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
ValidationError(string, string, object)
Emits Validation + Error (manufacturing/physics is unfeasible).
public void ValidationError(string id, string text, object detail = null)
Parameters
ValidationWarning(ISentenceCarrier, string, string, object)
Emits Validation + Warning located at sentenceCarrier.
public void ValidationWarning(ISentenceCarrier sentenceCarrier, string id, string text, object detail = null)
Parameters
sentenceCarrierISentenceCarrieridstringtextstringdetailobject
ValidationWarning(string, string, object)
Emits Validation + Warning (manufacturing/physics may be unfeasible).
public void ValidationWarning(string id, string text, object detail = null)
Parameters
Events
Cleared
Raised after Clear() empties the collection.
public event Action Cleared
Event Type
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