splitter

package
v0.31.17 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Engine

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

Engine is the splitter engine, which maintains a list of registered engines and passes every event it receives to each of these engines in parallel.

func New

func New(
	log zerolog.Logger,
	channel channels.Channel,
) *Engine

New creates a new splitter engine.

func (*Engine) Done

func (e *Engine) Done() <-chan struct{}

Done returns a done channel that is closed once the engine has fully stopped.

func (*Engine) Process

func (e *Engine) Process(channel channels.Channel, originID flow.Identifier, event interface{}) error

Process processes the given event from the node with the given origin ID in a blocking manner. It returns the potential processing error when done.

func (*Engine) Ready

func (e *Engine) Ready() <-chan struct{}

Ready returns a ready channel that is closed once the engine has fully started.

func (*Engine) RegisterEngine

func (e *Engine) RegisterEngine(engine network.MessageProcessor)

RegisterEngine registers a new engine with the splitter. Events that are received by the splitter after the engine has registered will be passed down to it.

func (*Engine) UnregisterEngine

func (e *Engine) UnregisterEngine(engine network.MessageProcessor)

UnregisterEngine unregisters an engine with the splitter. After the engine has been unregistered, the splitter will stop passing events to it. If the given engine was never registered, this is a noop.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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