watcherx

package
v0.0.421 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2022 License: Apache-2.0 Imports: 28 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrSchemeUnknown is just for checking with errors.Is()
	ErrSchemeUnknown     = &errSchemeUnknown{}
	ErrWatcherNotRunning = fmt.Errorf("watcher is not running")
)

Functions

func NewChangeFeedConnection added in v0.0.247

func NewChangeFeedConnection(ctx context.Context, l *logrusx.Logger, dsn string) (*sqlx.DB, error)

func WatchAndServeWS added in v0.0.145

func WatchAndServeWS(ctx context.Context, u *url.URL, writer herodot.Writer) (http.HandlerFunc, error)

Types

type ChangeEvent

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

func (*ChangeEvent) MarshalJSON added in v0.0.145

func (e *ChangeEvent) MarshalJSON() ([]byte, error)

func (*ChangeEvent) Reader

func (e *ChangeEvent) Reader() io.Reader

func (ChangeEvent) Source

func (e ChangeEvent) Source() string

func (*ChangeEvent) String added in v0.0.171

func (e *ChangeEvent) String() string

type ErrorEvent

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

func (*ErrorEvent) MarshalJSON added in v0.0.145

func (e *ErrorEvent) MarshalJSON() ([]byte, error)

func (*ErrorEvent) Reader

func (e *ErrorEvent) Reader() io.Reader

func (ErrorEvent) Source

func (e ErrorEvent) Source() string

func (*ErrorEvent) String added in v0.0.171

func (e *ErrorEvent) String() string

type Event

type Event interface {
	// MarshalJSON is required to work multiple times
	json.Marshaler

	Reader() io.Reader
	Source() string
	String() string
	// contains filtered or unexported methods
}

type EventChannel

type EventChannel chan Event

type RemoveEvent

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

func (*RemoveEvent) MarshalJSON added in v0.0.145

func (e *RemoveEvent) MarshalJSON() ([]byte, error)

func (*RemoveEvent) Reader

func (e *RemoveEvent) Reader() io.Reader

func (RemoveEvent) Source

func (e RemoveEvent) Source() string

func (*RemoveEvent) String added in v0.0.171

func (e *RemoveEvent) String() string

type Watcher added in v0.0.168

type Watcher interface {
	// DispatchNow fires the watcher and causes an event.
	//
	// WARNING: The returned channel must be read or no further events will
	// be propagated due to a deadlock.
	DispatchNow() (<-chan int, error)
}

func Watch

func Watch(ctx context.Context, u *url.URL, c EventChannel) (Watcher, error)

func WatchChangeFeed added in v0.0.247

func WatchChangeFeed(ctx context.Context, cx *sqlx.DB, tableName string, c EventChannel, cursor time.Time) (_ Watcher, err error)

WatchChangeFeed sends changed rows on the channel. To cancel the execution, cancel the context!

Watcher.DispatchNow() does not have an effect in this method.

This watcher is blocking to allow proper context cancellation and clean up.

func WatchDirectory added in v0.0.142

func WatchDirectory(ctx context.Context, dir string, c EventChannel) (Watcher, error)

func WatchFile

func WatchFile(ctx context.Context, file string, c EventChannel) (Watcher, error)

func WatchWebsocket added in v0.0.145

func WatchWebsocket(ctx context.Context, u *url.URL, c EventChannel) (Watcher, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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