Introduction
IEntry holds a value or an error, and state of entry.
// Create entry in unassigned state
IEntry<string> entry = new Entry<string>();
// Set processing
entry.SetProcessing();
// Set value
entry.SetValue("value");
// Set completed
entry.SetCompleted();
// Print status
WriteLine(entry.Status); // "Value, Completed"
// Dispose entry
((IDisposable)entry).Dispose();
// Print status
WriteLine(entry.Status); // "Disposed, Completed"
IEntry is used as the .Response property in IQuery.
// Get response
IEntry<string> response = (IEntry<string>)query.Response;
IEntry interfaces:
IEntry ├── IEntryReadable │ └── IEntryReadable<T> ├── IEntryWritable │ └── IEntryWritable<T> ├── IEntryAwaitable ├── IEntryVisitable ├── IEntryDecoration │ └── IEntryCast └── IEntryObservable ─── IEntryVisitor ─── IEntryAwaiter ─── IEntryDecorator
Full Example
Full example
using System;
using Avalanche.Service;
using static System.Console;
public class entry_index
{
public static void Run()
{
{
// <01>
// Create entry in unassigned state
IEntry<string> entry = new Entry<string>();
// Set processing
entry.SetProcessing();
// Set value
entry.SetValue("value");
// Set completed
entry.SetCompleted();
// Print status
WriteLine(entry.Status); // "Value, Completed"
// Dispose entry
((IDisposable)entry).Dispose();
// Print status
WriteLine(entry.Status); // "Disposed, Completed"
// </01>
}
{
// Create service
IService service = Services.Create(ServiceHandlers.Instance);
// Create request
string request = "Request";
// Create response
IEntry<string> entry = new Entry<string>();
// Create query
IQuery<string, string> query = new Query<string, string>(service, null, default, request, entry);
// <02>
// Get response
IEntry<string> response = (IEntry<string>)query.Response;
// </02>
}
}
}