context

package
v1.2.115 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2024 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 ExtractMIMIETags

func ExtractMIMIETags(ctx context.Context, key interface{}) (tags textproto.MIMEHeader, has bool)

ExtractMIMIETags 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 ExtractOrCreateMIMETags

func ExtractOrCreateMIMETags(ctx context.Context, key interface{}) (
	ctx_ context.Context, stags textproto.MIMEHeader)

ExtractOrCreateMIMETags extracts or create tags from context by key

func WithMIMETags

func WithMIMETags(ctx context.Context, key interface{}, tags textproto.MIMEHeader) context.Context

WithMIMETags create tags from context by key

func WithShutdownSignal

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

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

WithSignal registered for signals. A context.Context is returned. which is done on one of these incoming signals. signals can be stopped by stopSignal, context will never be Done() if stopped. 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. Deprecated: Use signal.NotifyContext instead since go1.16.

func WithTags

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

func WrapFunc added in v1.2.62

func WrapFunc(ctx context.Context, f func() error) func() error

WrapFunc returns a function literal that uses ctx to wait for the f parameter to be called and executed done or return immediately with f not terminate if ctx done. f will not be terminated if it's called.

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 Key

type Key struct{}

type MapTagsOption

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

A MapTagsOption sets options.

func WithMapTagsMimeKey

func WithMapTagsMimeKey() MapTagsOption

WithMapTagsMimeKey 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 ExtractOrCreateTags

func ExtractOrCreateTags(ctx context.Context, key interface{}, options ...MapTagsOption) (
	ctx_ context.Context, stags Tags)

ExtractOrCreateTags extracts or create tags from context by key

func ExtractTags

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

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 NewMapTags

func NewMapTags(options ...MapTagsOption) Tags

Jump to

Keyboard shortcuts

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