2019-06-12 21:56:55 +02:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace Capnp.Rpc
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// A promised capability.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface IResolvingCapability
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
2020-04-03 22:10:40 +02:00
|
|
|
|
/// Completes when the capability gets resolved.
|
2019-06-12 21:56:55 +02:00
|
|
|
|
/// </summary>
|
2020-04-03 22:10:40 +02:00
|
|
|
|
Task WhenResolved { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Returns the resolved capability
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T">Capability interface or <see cref="BareProxy"/></typeparam>
|
|
|
|
|
/// <returns>the resolved capability, or null if it did not resolve yet</returns>
|
|
|
|
|
T? GetResolvedCapability<T>() where T: class;
|
2019-06-12 21:56:55 +02:00
|
|
|
|
}
|
2020-01-11 17:56:12 +01:00
|
|
|
|
}
|