CoreHandlers
CoreHandlers includes all the handler tables.
[Export<IHandlerBase>]
public record CoreHandlers : HandlersTable
{
/// <summary>Lazy singleton</summary>
static readonly Lazy<CoreHandlers> instance = new Lazy<CoreHandlers>();
/// <summary>Singleton</summary>
public static CoreHandlers Instance => instance.Value;
/// <summary>.</summary>
public ServiceHandlers ServiceHandlers { get; init; } = ServiceHandlers.Instance;
/// <summary>Datatype support handlers</summary>
public DataTypeHandlers DataTypeHandlers { get; init; } = DataTypeHandlers.Instance;
/// <summary></summary>
public NetTypeHandlers NetTypeHandlers { get; init; } = NetTypeHandlers.Instance;
/// <summary></summary>
public JsonSchemaHandlers JsonSchemaHandlers { get; init; } = JsonSchemaHandlers.Instance;
/// <summary></summary>
public ProtobufTypeHandlers ProtobufTypeHandlers { get; init; } = ProtobufTypeHandlers.Instance;
/// <summary></summary>
public YamlTypeHandlers YamlTypeHandlers { get; init; } = YamlTypeHandlers.Instance;
/// <summary>.</summary>
public AccessorHandlers AccessorHandlers { get; init; } = AccessorHandlers.Instance;
/// <summary>.</summary>
public JsonAccessorHandlers JsonAccessorHandlers { get; init; } = JsonAccessorHandlers.Instance;
/// <summary>.</summary>
//public ProtobufAccessorHandlers ProtobufAccessorHandlers { get; init; } = ProtobufAccessorHandlers.Instance;
/// <summary>.</summary>
public YamlAccessorHandlers YamlAccessorHandlers { get; init; } = YamlAccessorHandlers.Instance;
/// <summary>.</summary>
public NetAccessorHandlers NetAccessorHandlers { get; init; } = NetAccessorHandlers.Instance;
/// <summary>.</summary>
public WriterHandlers WriterHandlers { get; init; } = WriterHandlers.Instance;
/// <summary>.</summary>
public EmitHandlers EmitHandlers { get; init; } = EmitHandlers.Instance;
/// <summary>.</summary>
public UtilitiesHandlers UtilitiesHandlers { get; init; } = UtilitiesHandlers.Instance;
}
Single handler set includes all the core functionality.
// Create service
IService service = Services.Create(CoreHandlers.Instance);
// Create request
var request = new DataTypeRequest<NetRecord>(typeof(MyRecord));
// Query
IRecordType recordType = service.GetRequired<IDataTypeRequest, IRecordType>(request);
// Print result
WriteLine(recordType.PrintTree());
Full Example
Full example
using Avalanche.Core;
using Avalanche.DataType;
using Avalanche.Service;
using static System.Console;
class corehandlers
{
public static void Run()
{
{
// <01>
// Create service
IService service = Services.Create(CoreHandlers.Instance);
// Create request
var request = new DataTypeRequest<NetRecord>(typeof(MyRecord));
// Query
IRecordType recordType = service.GetRequired<IDataTypeRequest, IRecordType>(request);
// Print result
WriteLine(recordType.PrintTree());
// </01>
}
{
// <02>
// </02>
}
{
// <03>
// </03>
}
}
public sealed record MyRecord(string name, int id);
}