2019-06-12 21:56:55 +02:00
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Capnp.Rpc;
|
|
|
|
|
|
|
|
|
|
namespace Capnp.Net.Runtime.Tests
|
|
|
|
|
{
|
2020-04-10 18:29:06 +02:00
|
|
|
|
class ProvidedCapabilityMock : RefCountingSkeleton
|
2019-06-12 21:56:55 +02:00
|
|
|
|
{
|
|
|
|
|
readonly TaskCompletionSource<(ulong, ushort, DeserializerState, CancellationToken)>
|
|
|
|
|
_call = new TaskCompletionSource<(ulong, ushort, DeserializerState, CancellationToken)>();
|
|
|
|
|
|
|
|
|
|
public override Task<AnswerOrCounterquestion> Invoke(ulong interfaceId, ushort methodId,
|
|
|
|
|
DeserializerState args, CancellationToken cancellationToken = default(CancellationToken))
|
|
|
|
|
{
|
|
|
|
|
_call.SetResult((interfaceId, methodId, args, cancellationToken));
|
|
|
|
|
return Return.Task;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task<(ulong, ushort, DeserializerState, CancellationToken)> WhenCalled =>
|
|
|
|
|
_call.Task;
|
|
|
|
|
|
|
|
|
|
public TaskCompletionSource<AnswerOrCounterquestion> Return { get; } = new TaskCompletionSource<AnswerOrCounterquestion>();
|
|
|
|
|
}
|
|
|
|
|
}
|