Class TaskHandlerBase
Common base class for ITaskHandler implementations.
Implements
Namespace: NanoByte.Common.Tasks
Assembly: NanoByte.Common.dll
Syntax
public abstract class TaskHandlerBase : Object, ITaskHandler
Remarks
This class is thread-safe.
Constructors
TaskHandlerBase()
Registers a Handler.
Declaration
protected TaskHandlerBase()
Properties
CancellationToken
Used to signal when the user wants to cancel the entire current process (and any ITasks it includes).
Declaration
public CancellationToken CancellationToken { get; }
Property Value
Type | Description |
---|---|
CancellationToken |
Remarks
Once this has been signalled this ITaskHandler cannot be reused, since any subsequently started ITasks will be cancelled immediately.
CancellationTokenSource
Used to signal the CancellationToken.
Declaration
protected CancellationTokenSource CancellationTokenSource { get; set; }
Property Value
Type | Description |
---|---|
CancellationTokenSource |
CredentialProvider
Used to ask the user or a keyring for NetworkCredentials for specific Uris; can be null
.
Declaration
protected virtual ICredentialProvider CredentialProvider { get; }
Property Value
Type | Description |
---|---|
ICredentialProvider |
IsInteractive
Indicates whether the user can provide input.
Declaration
protected virtual bool IsInteractive { get; }
Property Value
Type | Description |
---|---|
Boolean |
Verbosity
The detail level of messages displayed to the user.
Declaration
public Verbosity Verbosity { get; set; }
Property Value
Type | Description |
---|---|
Verbosity |
Methods
Ask(String, Nullable<Boolean>, String)
Asks the user a Yes/No/Cancel question.
Declaration
public bool Ask(string question, Nullable<bool> defaultAnswer = null, string alternateMessage = null)
Parameters
Type | Name | Description |
---|---|---|
String | question | The question and comprehensive information to help the user make an informed decision. |
Nullable<Boolean> | defaultAnswer | The default answer to preselect. May be chosen automatically if the user cannot be asked. |
String | alternateMessage | A message to output with Warn(String, Exception) when the |
Returns
Type | Description |
---|---|
Boolean |
|
Exceptions
Type | Condition |
---|---|
System.OperationCanceledException | Throw if the user answered with 'Cancel' or if no answer can be obtained. |
AskInteractive(String, Boolean)
Asks the user a Yes/No/Cancel question.
Declaration
protected abstract bool AskInteractive(string question, bool defaultAnswer)
Parameters
Type | Name | Description |
---|---|---|
String | question | The question and comprehensive information to help the user make an informed decision. |
Boolean | defaultAnswer | The default answer to preselect. |
Returns
Type | Description |
---|---|
Boolean |
|
Exceptions
Type | Condition |
---|---|
System.OperationCanceledException | Throw if the user answered with 'Cancel'. |
DisplayLogEntry(LogSeverity, String)
Hook called when a Log entry should be shown to the user.
Declaration
protected abstract void DisplayLogEntry(LogSeverity severity, string message)
Parameters
Type | Name | Description |
---|---|---|
LogSeverity | severity | The type/severity of the entry. |
String | message | The message of the entry including. |
Dispose()
Unregisters the Handler.
Declaration
public virtual void Dispose()
Error(Exception)
Displays an error message to the user.
Declaration
public abstract void Error(Exception exception)
Parameters
Type | Name | Description |
---|---|---|
Exception | exception | The exception representing the error that occurred. |
LogHandler(LogSeverity, String, Exception)
Called for each Log entry. Handles exception messages.
Declaration
protected virtual void LogHandler(LogSeverity severity, string message, Exception exception)
Parameters
Type | Name | Description |
---|---|---|
LogSeverity | severity | The type/severity of the entry. |
String | message | The message of the entry. |
Exception | exception | An optional exception associated with the entry. |
Output(String, String)
Displays multi-line text to the user.
Declaration
public abstract void Output(string title, string message)
Parameters
Type | Name | Description |
---|---|---|
String | title | A title for the message. |
String | message | The string to display. Trailing linebreaks are appropriately handled or ignored. |
Remarks
Implementations may close the UI as a side effect. Therefore this should be your last call on the handler.
Output<T>(String, NamedCollection<T>)
Displays tree-like data to the user.
Declaration
public virtual void Output<T>(string title, NamedCollection<T> data)
where T : INamed
Parameters
Type | Name | Description |
---|---|---|
String | title | A title for the data.INamed |
NamedCollection<T> | data | The data to display. |
Type Parameters
Name | Description |
---|---|
T |
Remarks
Implementations may close the UI as a side effect. Therefore this should be your last call on the handler.
Output<T>(String, IEnumerable<T>)
Displays tabular data to the user.
Declaration
public virtual void Output<T>(string title, IEnumerable<T> data)
Parameters
Type | Name | Description |
---|---|---|
String | title | A title for the data. |
IEnumerable<T> | data | The data to display. |
Type Parameters
Name | Description |
---|---|
T |
Remarks
Implementations may close the UI as a side effect. Therefore this should be your last call on the handler.
RunTask(ITask)
Runs an ITask and tracks its progress. Returns once the task has been completed.
Declaration
public virtual void RunTask(ITask task)
Parameters
Type | Name | Description |
---|---|---|
ITask | task | The task to be run. (Run(CancellationToken, ICredentialProvider, IProgress<TaskSnapshot>) or equivalent is called on it.) |
Exceptions
Type | Condition |
---|---|
System.OperationCanceledException | The user canceled the task. |
IOException | The task ended with IOError. |
WebException | The task ended with WebError. |