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 ¶
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 ¶
func (e *ErrTransportMessageConversion) Error() string
Error implements error.Error
func (*ErrTransportMessageConversion) Handled ¶
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 ¶
func (f ReceiveFunc) Receive(ctx context.Context, e cloudevents.Event, er *cloudevents.EventResponse) error
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. |