using System; using System.Threading; using System.Threading.Tasks; namespace Capnp.Rpc { /// /// Base class for a low-level capability at consumer side. It is created by the . An application does not directly interact with it /// (which is intentionally impossible, since the invocation method is internal), but instead uses a -derived wrapper. /// public abstract class ConsumedCapability { internal abstract IPromisedAnswer DoCall(ulong interfaceId, ushort methodId, DynamicSerializerState args); /// /// 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. /// 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 } }