queue

package
v4.2.6-beta1 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2023 License: AGPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeToBrokerMessage

func DecodeToBrokerMessage(msg []byte) (broker.Message, error)

DecodeToBrokerMessage tries to parse a combination of json-encoded metadata and a marshalled protobuf

func EncodeBrokerMessage added in v4.2.6

func EncodeBrokerMessage(message broker.Message) []byte

EncodeBrokerMessage just joins on the md+bytes raw data from a broker message

func EncodeProtoWithContext

func EncodeProtoWithContext(ctx context.Context, msg proto.Message) []byte

EncodeProtoWithContext combines json-encoded context metadata and marshalled proto.Message into a unique []byte

Types

type Consumer

type Consumer func(...broker.Message)

type Queue

type Queue interface {
	Consume(callback func(...broker.Message)) error
	PushRaw(ctx context.Context, message broker.Message) error
	Push(ctx context.Context, msg proto.Message) error
}

func OpenQueue

func OpenQueue(ctx context.Context, urlstr string) (Queue, error)

OpenQueue opens a Queue identified by the URL given. See the URLOpener documentation in driver subpackages for details on supported URL formats, and https://gocloud.dev/concepts/urls for more information.

type TypeWithContext

type TypeWithContext[T any] struct {
	Original T
	Ctx      context.Context
}

TypeWithContext composes a generic type and a context

type URLMux

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

URLMux is a URL opener multiplexer. It matches the scheme of the URLs against a set of registered schemes and calls the opener that matches the URL's scheme. See https://gocloud.dev/concepts/urls/ for more information.

The zero value is a multiplexer with no registered schemes.

func DefaultURLMux

func DefaultURLMux() *URLMux

DefaultURLMux returns the URLMux used by OpenTopic and OpenSubscription.

Driver packages can use this to register their TopicURLOpener and/or SubscriptionURLOpener on the mux.

func (*URLMux) OpenQueue

func (mux *URLMux) OpenQueue(ctx context.Context, urlstr string) (Queue, error)

OpenQueue calls OpenURL with the URL parsed from urlstr. OpenTopic is safe to call from multiple goroutines.

func (*URLMux) Register

func (mux *URLMux) Register(scheme string, opener URLOpener)

Register registers the opener with the given scheme. If an opener already exists for the scheme, Register panics.

func (*URLMux) Schemes

func (mux *URLMux) Schemes() []string

Schemes returns a sorted slice of the registered schemes.

func (*URLMux) ValidScheme

func (mux *URLMux) ValidScheme(scheme string) bool

ValidScheme returns true if scheme has been registered.

type URLOpener

type URLOpener interface {
	OpenURL(ctx context.Context, u *url.URL) (Queue, error)
}

URLOpener represents types than can open Registries based on a URL. The opener must not modify the URL argument. OpenURL must be safe to call from multiple goroutines.

This interface is generally implemented by types in driver packages.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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