store

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2022 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const LoggerTag = "EVENT_STORE"

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Storage   Storage
	Transport transport.Transport
	Log       log.Logger
}

Config contains configuration parameters for EventStore.

type EventStore

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

EventStore listens for event messages using the transport and stores them for later use.

func New

func New(cfg Config) (*EventStore, error)

New returns a new instance of the EventStore struct.

func (*EventStore) Events

func (e *EventStore) Events(ctx context.Context, typ string, idx []byte) ([]*messages.Event, error)

Events returns events for the given type and index. The method is thread-safe.

func (*EventStore) Start

func (e *EventStore) Start(ctx context.Context) error

func (*EventStore) Wait

func (e *EventStore) Wait() chan error

Wait waits until the context is canceled or until an error occurs.

type Storage

type Storage interface {
	// Add adds an event to the store. If the event already exists, it will be
	// updated if the MessageDate is newer. The first argument is true if the
	// event was added, false if it was replaced. The method is thread-safe.
	Add(ctx context.Context, author []byte, evt *messages.Event) (bool, error)
	// Get returns messages form the store for the given type and index. If the
	// message does not exist, nil will be returned. The method is thread-safe.
	Get(ctx context.Context, typ string, idx []byte) ([]*messages.Event, error)
}

Storage provides an interface to the event storage mechanism.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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