mirror of
https://github.com/FabInfra/capnproto-dotnetcore_Runtime.git
synced 2025-03-12 14:51:41 +01:00
34 lines
1.3 KiB
C#
34 lines
1.3 KiB
C#
using System;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Capnp.Rpc
|
|
{
|
|
/// <summary>
|
|
/// Base class for a low-level capability at consumer side. It is created by the <see cref="RpcEngine"/>. An application does not directly interact with it
|
|
/// (which is intentionally impossible, since the invocation method is internal), but instead uses a <see cref="Proxy"/>-derived wrapper.
|
|
/// </summary>
|
|
public abstract class ConsumedCapability
|
|
{
|
|
internal abstract IPromisedAnswer DoCall(ulong interfaceId, ushort methodId, DynamicSerializerState args, bool tailCall);
|
|
|
|
/// <summary>
|
|
/// Request the RPC engine to release this capability from its import table,
|
|
/// which usually also means to remove it from the remote peer's export table.
|
|
/// </summary>
|
|
protected abstract void ReleaseRemotely();
|
|
internal abstract void Export(IRpcEndpoint endpoint, CapDescriptor.WRITER writer);
|
|
internal abstract void Freeze(out IRpcEndpoint boundEndpoint);
|
|
internal abstract void Unfreeze();
|
|
|
|
internal abstract void AddRef();
|
|
internal abstract void Release();
|
|
|
|
#if DebugFinalizers
|
|
public string CreatorMemberName { get; set; }
|
|
public string CreatorFilePath { get; set; }
|
|
public int CreatorLineNumber { get; set; }
|
|
#endif
|
|
}
|
|
}
|