events

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2025 License: Apache-2.0 Imports: 12 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Delivery

type Delivery interface {
	ScanBlock(background context.Context, callback fabric.BlockCallback) error
}

type DeliveryListenerManagerConfig

type DeliveryListenerManagerConfig struct {
	MapperParallelism       int
	BlockProcessParallelism int
	ListenerTimeout         time.Duration
	LRUSize                 int
	LRUBuffer               int
}

type EventID

type EventID = string

type EventInfo

type EventInfo interface {
	ID() EventID
}

type EventInfoCallback

type EventInfoCallback[T EventInfo] func(T) error

type EventInfoMapper

type EventInfoMapper[T EventInfo] interface {
	MapTxData(ctx context.Context, tx []byte, block *common.BlockMetadata, blockNum driver.BlockNum, txNum driver.TxNum) (map[driver.Namespace]T, error)
	MapProcessedTx(tx *fabric.ProcessedTransaction) ([]T, error)
}

type ListenerEntry

type ListenerEntry[T EventInfo] interface {
	// Namespace returns the namespace this entry refers to. It can be empty.
	Namespace() driver.Namespace
	// OnStatus is the callback for the transaction
	OnStatus(ctx context.Context, info T)
	// Equals compares a listener entry for the delition
	Equals(other ListenerEntry[T]) bool
}

type ListenerManager

type ListenerManager[T EventInfo] struct {
	// contains filtered or unexported fields
}

func NewListenerManager

func NewListenerManager[T EventInfo](
	logger logging.Logger,
	config DeliveryListenerManagerConfig,
	delivery Delivery,
	queryService QueryByIDService[T],
	tracer trace.Tracer,
	mapper EventInfoMapper[T],
) (*ListenerManager[T], error)

func NewSequentialListenerManager added in v0.6.0

func NewSequentialListenerManager[T EventInfo](
	logger logging.Logger,
	config DeliveryListenerManagerConfig,
	delivery Delivery,
	queryService QueryByIDService[T],
	tracer trace.Tracer,
	mapper EventInfoMapper[T],
) (*ListenerManager[T], error)

func (*ListenerManager[T]) AddEventListener

func (m *ListenerManager[T]) AddEventListener(id EventID, e ListenerEntry[T]) error

func (*ListenerManager[T]) AddPermanentEventListener

func (m *ListenerManager[T]) AddPermanentEventListener(id EventID, e ListenerEntry[T]) error

func (*ListenerManager[T]) RemoveEventListener

func (m *ListenerManager[T]) RemoveEventListener(id EventID, e ListenerEntry[T]) error

type QueryByIDService

type QueryByIDService[T EventInfo] interface {
	QueryByID(ctx context.Context, startingBlock driver.BlockNum, evicted map[EventID][]ListenerEntry[T]) (<-chan []T, error)
}

Jump to

Keyboard shortcuts

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