transport

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2020 License: Apache-2.0 Imports: 3 Imported by: 32

Documentation

Overview

Package transport defines interfaces to decouple the client package from transport implementations.

Most event sender and receiver applications should not use this package, they should use the client package. This package is for infrastructure developers implementing new transports, or intermediary components like importers, channels or brokers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Codec

type Codec interface {
	Encode(context.Context, cloudevents.Event) (Message, error)
	Decode(context.Context, Message) (*cloudevents.Event, error)
}

Codec is the interface for transport codecs to convert between transport specific payloads and the Message interface.

type Converter

type Converter interface {
	Convert(context.Context, Message, error) (*cloudevents.Event, error)
}

Converter is an interface to define how a transport delegate to convert an non-understood transport message from the internal codecs. Providing a Converter allows incoming requests to be bridged to CloudEvents format if they have not been sent as an event in CloudEvents format.

type ErrMessageEncodingUnknown

type ErrMessageEncodingUnknown struct {
	// contains filtered or unexported fields
}

ErrMessageEncodingUnknown is an error produced when the encoding for an incoming message can not be understood.

func NewErrMessageEncodingUnknown

func NewErrMessageEncodingUnknown(codec, transport string) *ErrMessageEncodingUnknown

NewErrMessageEncodingUnknown makes a new ErrMessageEncodingUnknown.

func (*ErrMessageEncodingUnknown) Error

func (e *ErrMessageEncodingUnknown) Error() string

Error implements error.Error

type ErrTransportMessageConversion

type ErrTransportMessageConversion struct {
	// contains filtered or unexported fields
}

ErrTransportMessageConversion is an error produced when the transport message can not be converted.

func NewErrTransportMessageConversion

func NewErrTransportMessageConversion(transport, message string, handled, fatal bool) *ErrTransportMessageConversion

NewErrMessageEncodingUnknown makes a new ErrMessageEncodingUnknown.

func (*ErrTransportMessageConversion) Error

Error implements error.Error

func (*ErrTransportMessageConversion) Handled added in v0.10.0

func (e *ErrTransportMessageConversion) Handled() bool

Handled reports if this error should be considered accepted and no further action.

func (*ErrTransportMessageConversion) IsFatal

func (e *ErrTransportMessageConversion) IsFatal() bool

IsFatal reports if this error should be considered fatal.

type Message

type Message interface {
	// CloudEventsVersion returns the version of the CloudEvent.
	CloudEventsVersion() string
}

Message is the abstract transport message wrapper.

type ReceiveFunc

type ReceiveFunc func(ctx context.Context, e cloudevents.Event, er *cloudevents.EventResponse) error

ReceiveFunc wraps a function as a Receiver object.

func (ReceiveFunc) Receive

Receive implements Receiver.Receive

type Receiver

type Receiver interface {
	Receive(context.Context, cloudevents.Event, *cloudevents.EventResponse) error
}

Receiver is an interface to define how a transport will invoke a listener of incoming events.

type Transport

type Transport interface {
	Send(context.Context, cloudevents.Event) (context.Context, *cloudevents.Event, error)

	SetReceiver(Receiver)
	StartReceiver(context.Context) error

	// SetConverter sets the delegate to use for converting messages that have
	// failed to be decoded from known codecs for this transport.
	SetConverter(Converter)
	// HasConverter is true when a non-nil converter has been set.
	HasConverter() bool
	// HasTracePropagation is true when the transport implements
	// in-band trace propagation. When false, the client receiver
	// will propagate trace context from distributed tracing
	// extension attributes when available.
	HasTracePropagation() bool
}

Transport is the interface for transport sender to send the converted Message over the underlying transport.

Directories

Path Synopsis
Package amqp implements the CloudEvent transport implementation using amqp.
Package amqp implements the CloudEvent transport implementation using amqp.
Package http implements the CloudEvent transport implementation using HTTP.
Package http implements the CloudEvent transport implementation using HTTP.
Package nats implements the CloudEvent transport implementation using NATS.
Package nats implements the CloudEvent transport implementation using NATS.
Package pubsub implements the CloudEvent transport implementation using pubsub.
Package pubsub implements the CloudEvent transport implementation using pubsub.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL