subscription

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2023 License: MIT Imports: 8 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotFound = errors.New("not found")

Functions

This section is empty.

Types

type PeerContentFilter added in v0.9.0

type PeerContentFilter struct {
	PeerID        peer.ID  `json:"peerID"`
	PubsubTopic   string   `json:"pubsubTopics"`
	ContentTopics []string `json:"contentTopics"`
}

type PeerSubscription

type PeerSubscription struct {
	PeerID             peer.ID
	SubsPerPubsubTopic map[string]SubscriptionSet
}

type SubscriptionDetails

type SubscriptionDetails struct {
	sync.RWMutex

	ID string `json:"subscriptionID"`

	Closed bool `json:"-"`

	PeerID        peer.ID                 `json:"peerID"`
	ContentFilter protocol.ContentFilter  `json:"contentFilters"`
	C             chan *protocol.Envelope `json:"-"`
	// contains filtered or unexported fields
}

func (*SubscriptionDetails) Add

func (s *SubscriptionDetails) Add(contentTopics ...string)

func (*SubscriptionDetails) Close

func (s *SubscriptionDetails) Close() error

func (*SubscriptionDetails) CloseC

func (s *SubscriptionDetails) CloseC()

func (*SubscriptionDetails) MarshalJSON

func (s *SubscriptionDetails) MarshalJSON() ([]byte, error)

func (*SubscriptionDetails) Remove

func (s *SubscriptionDetails) Remove(contentTopics ...string)

type SubscriptionSet

type SubscriptionSet map[string]*SubscriptionDetails

Map of SubscriptionDetails.ID to subscriptions

type SubscriptionsMap

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

func NewSubscriptionMap

func NewSubscriptionMap(logger *zap.Logger) *SubscriptionsMap

func (*SubscriptionsMap) Clear

func (sub *SubscriptionsMap) Clear()

func (*SubscriptionsMap) Delete

func (sub *SubscriptionsMap) Delete(subscription *SubscriptionDetails) error

func (*SubscriptionsMap) GetSubscription added in v0.9.0

func (m *SubscriptionsMap) GetSubscription(peerID peer.ID, contentFilter protocol.ContentFilter) ([]peer.ID, []*SubscriptionDetails)

func (*SubscriptionsMap) Has

func (sub *SubscriptionsMap) Has(peerID peer.ID, cf protocol.ContentFilter) bool

Check if we have subscriptions for all (pubsubTopic, contentTopics[i]) pairs provided

func (*SubscriptionsMap) IsListening added in v0.9.0

func (m *SubscriptionsMap) IsListening(pubsubTopic, contentTopic string) bool

func (*SubscriptionsMap) IsSubscribedTo

func (sub *SubscriptionsMap) IsSubscribedTo(peerID peer.ID) bool

func (*SubscriptionsMap) NewSubscription

func (sub *SubscriptionsMap) NewSubscription(peerID peer.ID, cf protocol.ContentFilter) *SubscriptionDetails

func (*SubscriptionsMap) Notify

func (sub *SubscriptionsMap) Notify(peerID peer.ID, envelope *protocol.Envelope)

Jump to

Keyboard shortcuts

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