context

package
v0.0.126 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2021 License: MIT Imports: 6 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// NopTags is a trivial, minimum overhead implementation of Tags for which all operations are no-ops.
	NopTags = &nopTags{}
)

Functions

func WithShutdownSignal added in v0.0.93

func WithShutdownSignal(parent context.Context, sig ...os.Signal) context.Context

WithShutdownSignal registered for signals. A context.Context is returned. If no signals are provided, incoming os_.ShutdownSignals signals will be relayed. Otherwise, just the provided signals will. which is done on one of these incoming signals. If a second signal is caught, the program is terminated with exit code 1. Only one of Signal should be called, and only can be called once.

func WithSignal added in v0.0.93

func WithSignal(parent context.Context, sig ...os.Signal) (ctx context.Context, cancel context.CancelFunc)

WithSignal returns a copy of the parent context registered for signals. If the parent's context is already done than d, WithSignal(parent, sig...) is semantically equivalent to parent. The returned context's Done channel is closed when one of these incoming signals, when the returned cancel function is called, or when the parent context's Done channel is closed, whichever happens first. Canceling this context releases resources associated with it, so code should call cancel as soon as the operations running in this Context complete.

func WithTags

func WithTags(ctx context.Context, key interface{}, tags Tags) context.Context

Types

type EmptyMapTagsOption

type EmptyMapTagsOption struct{}

EmptyMapTagsOption does not alter the configuration. It can be embedded in another structure to build custom options.

This API is EXPERIMENTAL.

type MapTagsOption

type MapTagsOption interface {
	// contains filtered or unexported methods
}

A MapTagsOption sets options.

func WithTagsMimeKey

func WithTagsMimeKey() MapTagsOption

represents a MIME-style key mapping

type MapTagsOptionFunc

type MapTagsOptionFunc func(*mapTags)

MapTagsOptionFunc wraps a function that modifies mapTags into an implementation of the MapTagsOption interface.

type Tags

type Tags interface {
	// Set sets the given key in the metadata tags.
	Set(key string, value interface{})
	// Get gets if the metadata tags got by the given key exists.
	Get(key string) (interface{}, bool)
	// Del deletes the values associated with key.
	Del(key string)
	// Values returns a map of key to values.
	// Do not modify the underlying map, please use Set instead.
	Values() map[string]interface{}
}

Tags is the interface used for storing request tags between Context calls. The default implementation is *not* thread safe, and should be handled only in the context of the request.

func ExtractTags

func ExtractTags(ctx context.Context, key interface{}) Tags

ExtractTags returns a pre-existing Tags object in the Context. If the context wasn't set in a tag interceptor, a no-op Tag storage is returned that will *not* be propagated in context.

func NewTags

func NewTags(options ...MapTagsOption) Tags

Jump to

Keyboard shortcuts

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