Table of Contents

Class WorkflowTaskCompletedMetadata

Namespace
Temporalio.Api.Sdk.V1
Assembly
Temporalio.dll
public sealed class WorkflowTaskCompletedMetadata : IMessage<WorkflowTaskCompletedMetadata>, IEquatable<WorkflowTaskCompletedMetadata>, IDeepCloneable<WorkflowTaskCompletedMetadata>, IBufferMessage, IMessage
Inheritance
WorkflowTaskCompletedMetadata
Implements
Inherited Members

Constructors

WorkflowTaskCompletedMetadata()

public WorkflowTaskCompletedMetadata()

WorkflowTaskCompletedMetadata(WorkflowTaskCompletedMetadata)

public WorkflowTaskCompletedMetadata(WorkflowTaskCompletedMetadata other)

Parameters

other WorkflowTaskCompletedMetadata

Fields

CoreUsedFlagsFieldNumber

Field number for the "core_used_flags" field.

public const int CoreUsedFlagsFieldNumber = 1

Field Value

int

LangUsedFlagsFieldNumber

Field number for the "lang_used_flags" field.

public const int LangUsedFlagsFieldNumber = 2

Field Value

int

SdkNameFieldNumber

Field number for the "sdk_name" field.

public const int SdkNameFieldNumber = 3

Field Value

int

SdkVersionFieldNumber

Field number for the "sdk_version" field.

public const int SdkVersionFieldNumber = 4

Field Value

int

Properties

CoreUsedFlags

Internal flags used by the core SDK. SDKs using flags must comply with the following behavior:

During replay:

  • If a flag is not recognized (value is too high or not defined), it must fail the workflow task.
  • If a flag is recognized, it is stored in a set of used flags for the run. Code checks for that flag during and after this WFT are allowed to assume that the flag is present.
  • If a code check for a flag does not find the flag in the set of used flags, it must take the branch corresponding to the absence of that flag.

During non-replay execution of new WFTs:

  • The SDK is free to use all flags it knows about. It must record any newly-used (IE: not previously recorded) flags when completing the WFT.

SDKs which are too old to even know about this field at all are considered to produce undefined behavior if they replay workflows which used this mechanism.

(-- api-linter: core::0141::forbidden-types=disabled aip.dev/not-precedent: These really shouldn't have negative values. --)

public RepeatedField<uint> CoreUsedFlags { get; }

Property Value

RepeatedField<uint>

Descriptor

public static MessageDescriptor Descriptor { get; }

Property Value

MessageDescriptor

LangUsedFlags

Flags used by the SDK lang. No attempt is made to distinguish between different SDK languages here as processing a workflow with a different language than the one which authored it is already undefined behavior. See core_used_patches for more.

(-- api-linter: core::0141::forbidden-types=disabled aip.dev/not-precedent: These really shouldn't have negative values. --)

public RepeatedField<uint> LangUsedFlags { get; }

Property Value

RepeatedField<uint>

Parser

public static MessageParser<WorkflowTaskCompletedMetadata> Parser { get; }

Property Value

MessageParser<WorkflowTaskCompletedMetadata>

SdkName

Name of the SDK that processed the task. This is usually something like "temporal-go" and is usually the same as client-name gRPC header. This should only be set if its value changed since the last time recorded on the workflow (or be set on the first task).

(-- api-linter: core::0122::name-suffix=disabled aip.dev/not-precedent: We're ok with a name suffix here. --)

public string SdkName { get; set; }

Property Value

string

SdkVersion

Version of the SDK that processed the task. This is usually something like "1.20.0" and is usually the same as client-version gRPC header. This should only be set if its value changed since the last time recorded on the workflow (or be set on the first task).

public string SdkVersion { get; set; }

Property Value

string

Methods

CalculateSize()

Calculates the size of this message in Protocol Buffer wire format, in bytes.

public int CalculateSize()

Returns

int

The number of bytes required to write this message to a coded output stream.

Clone()

Creates a deep clone of this object.

public WorkflowTaskCompletedMetadata Clone()

Returns

WorkflowTaskCompletedMetadata

A deep clone of this object.

Equals(object)

Determines whether the specified object is equal to the current object.

public override bool Equals(object other)

Parameters

other object

Returns

bool

true if the specified object is equal to the current object; otherwise, false.

Equals(WorkflowTaskCompletedMetadata)

Indicates whether the current object is equal to another object of the same type.

public bool Equals(WorkflowTaskCompletedMetadata other)

Parameters

other WorkflowTaskCompletedMetadata

An object to compare with this object.

Returns

bool

true if the current object is equal to the other parameter; otherwise, false.

GetHashCode()

Serves as the default hash function.

public override int GetHashCode()

Returns

int

A hash code for the current object.

MergeFrom(CodedInputStream)

Merges the data from the specified coded input stream with the current message.

public void MergeFrom(CodedInputStream input)

Parameters

input CodedInputStream

Remarks

See the user guide for precise merge semantics.

MergeFrom(WorkflowTaskCompletedMetadata)

Merges the given message into this one.

public void MergeFrom(WorkflowTaskCompletedMetadata other)

Parameters

other WorkflowTaskCompletedMetadata

Remarks

See the user guide for precise merge semantics.

ToString()

Returns a string that represents the current object.

public override string ToString()

Returns

string

A string that represents the current object.

WriteTo(CodedOutputStream)

Writes the data to the given coded output stream.

public void WriteTo(CodedOutputStream output)

Parameters

output CodedOutputStream

Coded output stream to write the data to. Must not be null.