Operation
Represents a long-running operation.
using Azure.Core;
using Azure.Core.Pipeline;
using System;
using System.ClientModel.Primitives;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;
namespace Azure
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public abstract class Operation
{
public abstract string Id { get; }
public abstract bool HasCompleted { get; }
public static Operation<T> Rehydrate<[System.Runtime.CompilerServices.Nullable(0)] [DynamicallyAccessedMembers((DynamicallyAccessedMemberTypes)7)] T>(HttpPipeline pipeline, RehydrationToken rehydrationToken, [System.Runtime.CompilerServices.Nullable(2)] ClientOptions options = null) where T : IPersistableModel<T>
{
Argument.AssertNotNull(pipeline, "pipeline");
Argument.AssertNotNull(rehydrationToken, "rehydrationToken");
GenericOperationSource<T> operationSource = new GenericOperationSource<T>();
NextLinkOperationImplementation nextLinkOperationImplementation = (NextLinkOperationImplementation)NextLinkOperationImplementation.Create(pipeline, rehydrationToken);
IOperation<T> operation = NextLinkOperationImplementation.Create(operationSource, nextLinkOperationImplementation);
OperationState<T> operationState = operation.UpdateStateAsync(false, default(CancellationToken)).EnsureCompleted();
return new RehydrationOperation<T>(nextLinkOperationImplementation, operationState, operation, options);
}
public static Operation Rehydrate(HttpPipeline pipeline, RehydrationToken rehydrationToken, [System.Runtime.CompilerServices.Nullable(2)] ClientOptions options = null)
{
Argument.AssertNotNull(pipeline, "pipeline");
Argument.AssertNotNull(rehydrationToken, "rehydrationToken");
NextLinkOperationImplementation obj = (NextLinkOperationImplementation)NextLinkOperationImplementation.Create(pipeline, rehydrationToken);
OperationState operationState = obj.UpdateStateAsync(false, default(CancellationToken)).EnsureCompleted();
return new RehydrationOperation(obj, operationState, null);
}
[AsyncStateMachine(typeof(<RehydrateAsync>d__2<>))]
public static Task<Operation<T>> RehydrateAsync<[System.Runtime.CompilerServices.Nullable(0)] [DynamicallyAccessedMembers((DynamicallyAccessedMemberTypes)7)] T>(HttpPipeline pipeline, RehydrationToken rehydrationToken, [System.Runtime.CompilerServices.Nullable(2)] ClientOptions options = null) where T : IPersistableModel<T>
{
<RehydrateAsync>d__2<T> stateMachine = default(<RehydrateAsync>d__2<T>);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Operation<T>>.Create();
stateMachine.pipeline = pipeline;
stateMachine.rehydrationToken = rehydrationToken;
stateMachine.options = options;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<RehydrateAsync>d__3))]
public static Task<Operation> RehydrateAsync(HttpPipeline pipeline, RehydrationToken rehydrationToken, [System.Runtime.CompilerServices.Nullable(2)] ClientOptions options = null)
{
<RehydrateAsync>d__3 stateMachine = default(<RehydrateAsync>d__3);
stateMachine.<>t__builder = AsyncTaskMethodBuilder<Operation>.Create();
stateMachine.pipeline = pipeline;
stateMachine.rehydrationToken = rehydrationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
public virtual RehydrationToken? GetRehydrationToken()
{
return null;
}
public abstract Response GetRawResponse();
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
public abstract ValueTask<Response> UpdateStatusAsync(CancellationToken cancellationToken = default(CancellationToken));
public abstract Response UpdateStatus(CancellationToken cancellationToken = default(CancellationToken));
[AsyncStateMachine(typeof(<WaitForCompletionResponseAsync>d__12))]
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
public virtual ValueTask<Response> WaitForCompletionResponseAsync(CancellationToken cancellationToken = default(CancellationToken))
{
<WaitForCompletionResponseAsync>d__12 stateMachine = default(<WaitForCompletionResponseAsync>d__12);
stateMachine.<>t__builder = AsyncValueTaskMethodBuilder<Response>.Create();
stateMachine.<>4__this = this;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<WaitForCompletionResponseAsync>d__13))]
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
public virtual ValueTask<Response> WaitForCompletionResponseAsync(TimeSpan pollingInterval, CancellationToken cancellationToken = default(CancellationToken))
{
<WaitForCompletionResponseAsync>d__13 stateMachine = default(<WaitForCompletionResponseAsync>d__13);
stateMachine.<>t__builder = AsyncValueTaskMethodBuilder<Response>.Create();
stateMachine.<>4__this = this;
stateMachine.pollingInterval = pollingInterval;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
[AsyncStateMachine(typeof(<WaitForCompletionResponseAsync>d__14))]
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
public virtual ValueTask<Response> WaitForCompletionResponseAsync(DelayStrategy delayStrategy, CancellationToken cancellationToken = default(CancellationToken))
{
<WaitForCompletionResponseAsync>d__14 stateMachine = default(<WaitForCompletionResponseAsync>d__14);
stateMachine.<>t__builder = AsyncValueTaskMethodBuilder<Response>.Create();
stateMachine.<>4__this = this;
stateMachine.delayStrategy = delayStrategy;
stateMachine.cancellationToken = cancellationToken;
stateMachine.<>1__state = -1;
stateMachine.<>t__builder.Start(ref stateMachine);
return stateMachine.<>t__builder.Task;
}
public virtual Response WaitForCompletionResponse(CancellationToken cancellationToken = default(CancellationToken))
{
return new OperationPoller(null).WaitForCompletionResponse(this, null, cancellationToken);
}
public virtual Response WaitForCompletionResponse(TimeSpan pollingInterval, CancellationToken cancellationToken = default(CancellationToken))
{
return new OperationPoller(null).WaitForCompletionResponse(this, pollingInterval, cancellationToken);
}
public virtual Response WaitForCompletionResponse(DelayStrategy delayStrategy, CancellationToken cancellationToken = default(CancellationToken))
{
return new OperationPoller(delayStrategy).WaitForCompletionResponse(this, null, cancellationToken);
}
internal static T GetValue<T>([System.Runtime.CompilerServices.Nullable(2)] ref T value) where T : class
{
if (value == null)
throw new InvalidOperationException("The operation has not completed yet.");
return value;
}
[System.Runtime.CompilerServices.NullableContext(0)]
internal static T GetValue<T>(ref T? value) where T : struct
{
if (!value.HasValue)
throw new InvalidOperationException("The operation has not completed yet.");
return value.Value;
}
[System.Runtime.CompilerServices.NullableContext(2)]
[EditorBrowsable(EditorBrowsableState.Never)]
public override bool Equals(object obj)
{
return base.Equals(obj);
}
[EditorBrowsable(EditorBrowsableState.Never)]
public override int GetHashCode()
{
return base.GetHashCode();
}
[System.Runtime.CompilerServices.NullableContext(2)]
[EditorBrowsable(EditorBrowsableState.Never)]
public override string ToString()
{
return base.ToString();
}
}
}