membroker

package module
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2022 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Membroker

type Membroker[T any] struct {
	// contains filtered or unexported fields
}

func NewMembroker

func NewMembroker[T any](pruneInterval ...time.Duration) *Membroker[T]

func (Membroker[T]) Exited

func (m Membroker[T]) Exited() bool

Exited returns true if the Membroker has exited for any reason.

func (Membroker[T]) Message

func (m Membroker[T]) Message(id string) *Message[T]

func (*Membroker[T]) Run

func (m *Membroker[T]) Run() error

Run wraps RunContext, passing an "empty" context.Context.

func (*Membroker[T]) RunContext

func (m *Membroker[T]) RunContext(ctx context.Context) error

RunContext starts the Membroker's broadcast and prune loops, and waits for the passed context to be done or Stop to be called before exiting.

func (*Membroker[T]) Send

func (m *Membroker[T]) Send(msg *Message[T])

Send sends a Message to all subscribers.

func (*Membroker[T]) Stop

func (m *Membroker[T]) Stop()

Stop cleanly stops the Membroker, preventing any new messages from being sent or broadcasted.

func (*Membroker[T]) Subscribe

func (m *Membroker[T]) Subscribe() *Subscriber[T]

Subscribe returns a new Subscriber which is stored in the Membroker's internal subscribers map.

func (*Membroker[T]) Unsubscribe

func (m *Membroker[T]) Unsubscribe(subId string)

Unsubscribe removes the passed subscriber from the Membroker's internal subscribers map if present. If the passed subscriber is present, it is also closed.

type Message

type Message[T any] struct {
	// contains filtered or unexported fields
}

func NewMessage

func NewMessage[T any](data T, requiredAcks uint64) *Message[T]

func (*Message[T]) Ack

func (m *Message[T]) Ack(subscriberId string)

func (Message[T]) AckedBy

func (m Message[T]) AckedBy(subscriberId string) bool

func (Message[T]) Acks

func (m Message[T]) Acks() uint64

func (Message[T]) CanExpire

func (m Message[T]) CanExpire() bool

func (Message[T]) Data

func (m Message[T]) Data() T

func (Message[T]) Expiration

func (m Message[T]) Expiration() time.Time

func (Message[T]) Expired

func (m Message[T]) Expired() bool

func (Message[T]) HasSufficientAcks

func (m Message[T]) HasSufficientAcks() bool

func (Message[T]) Id

func (m Message[T]) Id() string

func (Message[T]) RequiredAcks

func (m Message[T]) RequiredAcks() uint64

func (*Message[T]) SetExpiration

func (m *Message[T]) SetExpiration(exp time.Time) *Message[T]

type Subscriber

type Subscriber[T any] struct {
	// contains filtered or unexported fields
}

func NewSubscriber

func NewSubscriber[T any]() *Subscriber[T]

func (*Subscriber[T]) Close

func (s *Subscriber[T]) Close()

func (Subscriber[T]) Closed

func (s Subscriber[T]) Closed() bool

func (Subscriber[T]) Id

func (s Subscriber[T]) Id() string

func (Subscriber[T]) Recv

func (s Subscriber[T]) Recv() *Message[T]

func (Subscriber[T]) RecvAll

func (s Subscriber[T]) RecvAll() <-chan *Message[T]

func (*Subscriber[T]) Send

func (s *Subscriber[T]) Send(msg *Message[T])

Jump to

Keyboard shortcuts

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