observer

package
v0.31.0 Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2018 License: BSD-3-Clause Imports: 7 Imported by: 12

Documentation

Overview

Package observer provides a facility for publishing progress updates and state changes from parts of the daemon, an a SSE http handler for consumers of these events.

Index

Constants

This section is empty.

Variables

View Source
var CtxRequestID ctxkey = "id"

CtxRequestID is the context WithValue key for a request id.

Functions

This section is empty.

Types

type EventType

type EventType string

EventType represents all possible types of events that can be observed.

const (
	Progress EventType = "progress"
	Started  EventType = "started"
	Finished EventType = "finished"
	Errored  EventType = "errored"
	Aborted  EventType = "aborted"
)

All values for EventType

type Notifier

type Notifier struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Notifier belongs to a transactions and represents one segment in a series of actions. A Notifier can send many messages.

func (*Notifier) Notifier

func (n *Notifier) Notifier(total uint) *Notifier

Notifier creates a child notifier to this Notifier

func (*Notifier) Notify

func (n *Notifier) Notify(eventType EventType, message string, increment bool)

Notify publishes an event to all SSE observers. This function panics when it is called more often than it is supposed to have been called.

type Observer

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

Observer receives events via Notify, and publishes them as SSEs via its ServeHTTP function.

func New

func New() *Observer

New returns a new initialized Observer

func (*Observer) Notifier

func (o *Observer) Notifier(ctx context.Context, total uint) (*Notifier, error)

Notifier creates a new transaction for sending notifications

func (*Observer) ServeHTTP

func (o *Observer) ServeHTTP(rw http.ResponseWriter, r *http.Request)

ServeHTTP implements the http.Handler interface for providing server-sent events of observed notifications.

func (*Observer) Start

func (o *Observer) Start()

Start begins listening for notifications of observable events. It returns after stop has been called.

func (*Observer) Stop

func (o *Observer) Stop()

Stop terminates propagation of events through the observer

Jump to

Keyboard shortcuts

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