Microsoft.Bot.Streaming.Payloads Namespace

Classes

CancelDisassembler

The PayloadDisassembler used used by Cancel requests.

ContentStream

A stream of fixed or infinite length containing content to be decoded.

Header

The 48-byte, fixed size, header prefaces every payload. The header must always have the same shape, regardless of if its payload is a request, response, or content.It is a period-delimited ASCII-encoded string terminated with a newline.All headers must have these segments, and all values must be zero padded to fill the correct number of bytes: |Title Size Description |Type 1 byte ASCII-encoded char. Describes the format of the payload(request, response, stream, etc.) |Delimiter 1 byte ASCII period character. |Length 6 bytes ASCII-encoded decimal. Size in bytes of this payload in ASCII decimal, not including the header. Zero padded. |Delimiter 1 byte ASCII period character. |ID 36 bytes ASCII-encoded hex. GUID (Request ID, Stream ID, etc.). |Delimiter 1 byte ASCII period character. |End 1 byte ASCII ‘0’ or ‘1’. Signals the end of a payload or multi-part payload. |Terminator 1 byte Hardcoded to \n . ex: A.000168.68e999ca-a651-40f4-ad8f-3aaf781862b4.1\n end example.

HeaderSerializer

The 48-byte, fixed size, header prefaces every payload. The header must always have the same shape, regardless of if its payload is a request, response, or content. It is a period-delimited ASCII-encoded string terminated with a newline. All headers must have these segments, and all values must be zero padded to fill the correct number of bytes: |Title Size Description |Type 1 byte ASCII-encoded char. Describes the format of the payload (request, response, stream, etc.) |Delimiter 1 byte ASCII period character |Length 6 bytes ASCII-encoded decimal. Size in bytes of this payload in ASCII decimal, not including the header. Zero padded. |Delimiter 1 byte ASCII period character |ID 36 bytes ASCII-encoded hex. GUID (Request ID, Stream ID, etc.) |Delimiter 1 byte ASCII period character |End 1 byte ASCII ‘0’ or ‘1’. Signals the end of a payload or multi-part payload |Terminator 1 byte Hardcoded to \n ex: A.000168.68e999ca-a651-40f4-ad8f-3aaf781862b4.1\n end example.

PayloadDisassembler

PayloadDisassemblers take data payloads and break them into chunks to be sent out over the transport and reassembled on the receiving side. This allows for payload multiplexing and avoids a single large payload from blocking the transport.

PayloadStream

An extension of Stream that operates in conjunction with a PayloadStreamAssembler to convert raw bytes into a consumable form.

PayloadStreamAssembler

An IAssembler specific to payload streams.

PayloadTypes

A set of well known definitions of PayloadStream types used by Headers.

RequestDisassembler

The PayloadDisassembler used for StreamingRequest payloads.

RequestManager

Manages the tasks involved in processing and responding to incoming StreamingRequests.

ResponseDisassembler

The PayloadDisassembler used for StreamingResponse payloads.

ResponseMessageStream

An attachment contained within a StreamingRequest's stream collection, which itself contains any form of media item.

ResponseMessageStreamDisassembler

The PayloadDisassembler used for ResponseMessageStream payloads.

SendOperations

A set of tasks used for attaching one or more PayloadDisassemblers to a single PayloadSender which multiplexes data chunks from multiple disassembled payloads and sends them out over the wire via a shared ITransportSender.

StreamDescription

An easily serializable object used to store the ID, Type, and Length of a PayloadStream without touching the stream itself.

StreamManager

StreamManagers are used to provide access to the objects involved in processing incoming PayloadStreams.

StreamWrapper

A wrapper class containing a stream and the length of that stream. Used to determine the length of a stream without touching the stream itself.

Interfaces

IAssembler

An assembler used to pull raw, disjointed, bytes from the incoming stream and assemble them into their original form.

IContentStream

Implemented by stream attachments compatible with the Bot Framework Protocol 3 with Streaming Extensions.

IStreamManager

StreamManagers are used to provide access to the objects involved in processing incoming PayloadStreams.