Table of Contents

Class OutgoingFrame

Namespace
IceRpc
Assembly
IceRpc.dll

Represents the base class for outgoing frames.

public abstract class OutgoingFrame
Inheritance
OutgoingFrame
Derived
Inherited Members

Properties

Payload

Gets or sets the payload of this frame.

public PipeReader Payload { get; set; }

Property Value

PipeReader

The payload of this frame. Defaults to a PipeReader that returns an empty sequence.

Remarks

IceRPC completes the payload PipeReader with the Complete(Exception) method. It never calls CompleteAsync(Exception). The implementation of Complete(Exception) should not block.

PayloadContinuation

Gets or sets the payload continuation of this frame. The payload continuation is a continuation of Payload. The receiver cannot distinguish any seam between payload and payload continuation in the Payload it receives.

public PipeReader? PayloadContinuation { get; set; }

Property Value

PipeReader

The payload continuation of this frame. Defaults to null meaning no continuation.

Remarks

IceRPC completes the payload continuation PipeReader with the Complete(Exception) method. It never calls CompleteAsync(Exception). The implementation of Complete(Exception) should not block.

Protocol

Gets the protocol of this frame.

public Protocol Protocol { get; }

Property Value

Protocol

The Protocol value of this frame.

Methods

Use(Func<PipeWriter, PipeWriter>)

Installs a payload writer interceptor in this outgoing frame. This interceptor is executed just before sending Payload, and is typically used to compress both Payload and PayloadContinuation.

public OutgoingFrame Use(Func<PipeWriter, PipeWriter> payloadWriterInterceptor)

Parameters

payloadWriterInterceptor Func<PipeWriter, PipeWriter>

The payload writer interceptor to install.

Returns

OutgoingFrame

This outgoing frame.

Remarks

IceRPC completes the payload writer PipeWriter with the Complete(Exception) method. It never calls CompleteAsync(Exception). The implementation of Complete(Exception) should not block.