lib

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2019 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Noop

func Noop(_ interface{})

Noop is a function that doesn't do anything

Types

type MembershipStore

type MembershipStore struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

MembershipStore struct which encapsulates membership message store abstraction

func NewMembershipStore

func NewMembershipStore() *MembershipStore

NewMembershipStore creates new membership store instance

func (*MembershipStore) MsgByID

MsgByID returns a message stored by a certain ID, or nil if such an ID isn't found

func (*MembershipStore) Put

Put associates msg with the given PKI-ID

func (*MembershipStore) Remove

func (m *MembershipStore) Remove(pkiID common.PKIidType)

Remove removes a message with a given pkiID

func (*MembershipStore) Size

func (m *MembershipStore) Size() int

Size of the membership store

func (*MembershipStore) ToSlice

func (m *MembershipStore) ToSlice() []*protos.SignedRKSyncMessage

ToSlice returns a slice backed by the elements of the MembershipStore

type MessageStore

type MessageStore interface {
	Add(msg interface{}) bool
	CheckValid(msg interface{}) bool
	Size() int
	Get() []interface{}
	Stop()
	Purge(func(interface{}) bool)
}

MessageStore adds message to an internal buffer

func NewMessageStore

func NewMessageStore(pol common.MessageReplcaingPolicy, trigger invalidationTrigger) MessageStore

NewMessageStore returns a new MessageStore with the message replacing

func NewMessageStoreExpirable

func NewMessageStoreExpirable(pol common.MessageReplcaingPolicy, trigger invalidationTrigger,
	msgTTL time.Duration, externalLock func(), externalUnlock func(), externalExpire func(interface{})) MessageStore

NewMessageStoreExpirable returns a new MessageStore with the message replacing It supports old message expiration after msgTTL

type PubSub

type PubSub struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

PubSub defines a struct that one can use to: - publish items to a topic to multiple subscribers - and subscribe to items from a topic The subscriptions have a TTL and are cleaned when it passes.

func NewPubSub

func NewPubSub() *PubSub

NewPubSub creates a new PubSub with an empty set of subscriptions

func (*PubSub) Publish

func (ps *PubSub) Publish(topic string, item interface{}) error

Publish publishes an item to all subscribers on the topic

func (*PubSub) Subscribe

func (ps *PubSub) Subscribe(topic string, ttl time.Duration) Subscription

Subscribe returns a subscription to a topic that expires when given TTL passes

type Set

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

Set is a generic thread-safe set container

func NewSet

func NewSet() *Set

NewSet returns a new set

func (*Set) Add

func (s *Set) Add(item interface{})

Add adds given item to the set

func (*Set) Clear

func (s *Set) Clear()

Clear removes all elements from set

func (*Set) Exists

func (s *Set) Exists(item interface{}) bool

Exists returns true whether given item is in the set

func (*Set) Remove

func (s *Set) Remove(item interface{})

Remove removes a given item from the set

func (*Set) Size

func (s *Set) Size() int

Size returns the size of the set

func (*Set) ToArray

func (s *Set) ToArray() []interface{}

ToArray returns a slice with items at the point in time the method was invoked

type Subscription

type Subscription interface {
	// Listen blocks until a publish was made
	// to the subscription, or an error if the
	// subscription's TTL passed
	Listen() (interface{}, error)
}

Subscription defines a subscription to a topic that can be used to receive publishes on

Jump to

Keyboard shortcuts

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