filter

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2023 License: MIT Imports: 27 Imported by: 2

Documentation

Index

Constants

View Source
const DefaultMaxSubscriptions = 1000
View Source
const FilterPushID_v20beta1 = libp2pProtocol.ID("/vac/waku/filter-push/2.0.0-beta1")

FilterPushID_v20beta1 is the current Waku Filter protocol identifier used to allow filter service nodes to push messages matching registered subscriptions to this client.

View Source
const FilterSubscribeID_v20beta1 = libp2pProtocol.ID("/vac/waku/filter-subscribe/2.0.0-beta1")

FilterSubscribeID_v20beta1 is the current Waku Filter protocol identifier for servers to allow filter clients to subscribe, modify, refresh and unsubscribe a desired set of filter criteria

View Source
const MaxContentTopicsPerRequest = 30
View Source
const MaxCriteriaPerSubscription = 1000
View Source
const MessagePushTimeout = 20 * time.Second

Variables

View Source
var (
	ErrNoPeersAvailable = errors.New("no suitable remote peers")
)
View Source
var ErrNotFound = errors.New("not found")

Functions

This section is empty.

Types

type ContentFilter

type ContentFilter struct {
	Topic         string
	ContentTopics []string
}

type ContentTopicSet added in v0.6.0

type ContentTopicSet map[string]struct{}

type FilterError added in v0.6.0

type FilterError struct {
	Code    int
	Message string
}

func NewFilterError added in v0.6.0

func NewFilterError(code int, message string) FilterError

func (*FilterError) Error added in v0.6.0

func (e *FilterError) Error() string

type FilterParameters

type FilterParameters struct {
	Timeout        time.Duration
	MaxSubscribers int
}

type FilterSubscribeOption

type FilterSubscribeOption func(*FilterSubscribeParameters)

func DefaultSubscriptionOptions added in v0.6.0

func DefaultSubscriptionOptions() []FilterSubscribeOption

func WithAutomaticPeerSelection

func WithAutomaticPeerSelection(fromThesePeers ...peer.ID) FilterSubscribeOption

WithAutomaticPeerSelection is an option used to randomly select a peer from the peer store. If a list of specific peers is passed, the peer will be chosen from that list assuming it supports the chosen protocol, otherwise it will chose a peer from the node peerstore

func WithAutomaticRequestId added in v0.6.0

func WithAutomaticRequestId() FilterSubscribeOption

func WithFastestPeerSelection

func WithFastestPeerSelection(ctx context.Context, fromThesePeers ...peer.ID) FilterSubscribeOption

WithFastestPeerSelection is an option used to select a peer from the peer store with the lowest ping If a list of specific peers is passed, the peer will be chosen from that list assuming it supports the chosen protocol, otherwise it will chose a peer from the node peerstore

func WithPeer

func WithPeer(p peer.ID) FilterSubscribeOption

func WithRequestId added in v0.6.0

func WithRequestId(requestId []byte) FilterSubscribeOption

type FilterSubscribeParameters

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

type FilterUnsubscribeOption added in v0.6.0

type FilterUnsubscribeOption func(*FilterUnsubscribeParameters)

func AutomaticRequestId added in v0.6.0

func AutomaticRequestId() FilterUnsubscribeOption

func DefaultUnsubscribeOptions added in v0.6.0

func DefaultUnsubscribeOptions() []FilterUnsubscribeOption

func Peer added in v0.6.0

func RequestID added in v0.6.0

func RequestID(requestId []byte) FilterUnsubscribeOption

func UnsubscribeAll added in v0.6.0

func UnsubscribeAll() FilterUnsubscribeOption

type FilterUnsubscribeParameters added in v0.6.0

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

type Option

type Option func(*FilterParameters)

func DefaultOptions

func DefaultOptions() []Option

func WithMaxSubscribers added in v0.6.0

func WithMaxSubscribers(maxSubscribers int) Option

func WithTimeout

func WithTimeout(timeout time.Duration) Option

type PeerSet added in v0.6.0

type PeerSet map[peer.ID]struct{}

type PeerSubscription added in v0.6.0

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

type PubsubTopics added in v0.6.0

type PubsubTopics map[string]ContentTopicSet // pubsubTopic => contentTopics

type SubscribersMap added in v0.6.0

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

func NewSubscribersMap added in v0.6.0

func NewSubscribersMap(timeout time.Duration) *SubscribersMap

func (*SubscribersMap) Clear added in v0.6.0

func (sub *SubscribersMap) Clear()

func (*SubscribersMap) Count added in v0.6.0

func (sub *SubscribersMap) Count() int

func (*SubscribersMap) Delete added in v0.6.0

func (sub *SubscribersMap) Delete(peerID peer.ID, pubsubTopic string, contentTopics []string) error

func (*SubscribersMap) DeleteAll added in v0.6.0

func (sub *SubscribersMap) DeleteAll(peerID peer.ID) error

func (*SubscribersMap) FlagAsFailure added in v0.6.0

func (sub *SubscribersMap) FlagAsFailure(peerID peer.ID)

func (*SubscribersMap) FlagAsSuccess added in v0.6.0

func (sub *SubscribersMap) FlagAsSuccess(peerID peer.ID)

func (*SubscribersMap) Get added in v0.6.0

func (sub *SubscribersMap) Get(peerID peer.ID) (PubsubTopics, bool)

func (*SubscribersMap) Has added in v0.6.0

func (sub *SubscribersMap) Has(peerID peer.ID) bool

func (*SubscribersMap) IsFailedPeer added in v0.6.0

func (sub *SubscribersMap) IsFailedPeer(peerID peer.ID) bool

func (*SubscribersMap) Items added in v0.6.0

func (sub *SubscribersMap) Items(pubsubTopic string, contentTopic string) <-chan peer.ID

func (*SubscribersMap) RemoveAll added in v0.6.0

func (sub *SubscribersMap) RemoveAll()

func (*SubscribersMap) Set added in v0.6.0

func (sub *SubscribersMap) Set(peerID peer.ID, pubsubTopic string, contentTopics []string)

type SubscriptionDetails added in v0.6.0

type SubscriptionDetails struct {
	sync.RWMutex

	ID string

	Closed bool

	PeerID        peer.ID
	PubsubTopic   string
	ContentTopics map[string]struct{}
	C             chan *protocol.Envelope
	// contains filtered or unexported fields
}

func (*SubscriptionDetails) Add added in v0.6.0

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

func (*SubscriptionDetails) Clone added in v0.6.0

func (*SubscriptionDetails) Close added in v0.6.0

func (s *SubscriptionDetails) Close() error

func (*SubscriptionDetails) MarshalJSON added in v0.7.0

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

func (*SubscriptionDetails) Remove added in v0.6.0

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

type SubscriptionSet added in v0.6.0

type SubscriptionSet map[string]*SubscriptionDetails

type SubscriptionsMap added in v0.6.0

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

func NewSubscriptionMap added in v0.6.0

func NewSubscriptionMap(logger *zap.Logger) *SubscriptionsMap

func (*SubscriptionsMap) Clear added in v0.6.0

func (sub *SubscriptionsMap) Clear()

func (*SubscriptionsMap) Delete added in v0.6.0

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

func (*SubscriptionsMap) Has added in v0.6.0

func (sub *SubscriptionsMap) Has(peerID peer.ID, topic string, contentTopics ...string) bool

func (*SubscriptionsMap) IsSubscribedTo added in v0.6.0

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

func (*SubscriptionsMap) NewSubscription added in v0.6.0

func (sub *SubscriptionsMap) NewSubscription(peerID peer.ID, topic string, contentTopics []string) *SubscriptionDetails

func (*SubscriptionsMap) Notify added in v0.6.0

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

type WakuFilterFullNode added in v0.6.0

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

func NewWakuFilterFullnode added in v0.6.0

func NewWakuFilterFullnode(timesource timesource.Timesource, log *zap.Logger, opts ...Option) *WakuFilterFullNode

NewWakuFilterFullnode returns a new instance of Waku Filter struct setup according to the chosen parameter and options

func (*WakuFilterFullNode) SetHost added in v0.6.0

func (wf *WakuFilterFullNode) SetHost(h host.Host)

Sets the host to be able to mount or consume a protocol

func (*WakuFilterFullNode) Start added in v0.6.0

func (*WakuFilterFullNode) Stop added in v0.6.0

func (wf *WakuFilterFullNode) Stop()

Stop unmounts the filter protocol

type WakuFilterLightnode added in v0.6.0

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

func NewWakuFilterLightnode added in v0.6.0

func NewWakuFilterLightnode(broadcaster relay.Broadcaster, timesource timesource.Timesource, log *zap.Logger) *WakuFilterLightnode

NewWakuRelay returns a new instance of Waku Filter struct setup according to the chosen parameter and options

func (*WakuFilterLightnode) FilterSubscription added in v0.6.0

func (wf *WakuFilterLightnode) FilterSubscription(peerID peer.ID, contentFilter ContentFilter) (*SubscriptionDetails, error)

FilterSubscription is used to obtain an object from which you could receive messages received via filter protocol

func (*WakuFilterLightnode) IsSubscriptionAlive added in v0.6.0

func (wf *WakuFilterLightnode) IsSubscriptionAlive(ctx context.Context, subscription *SubscriptionDetails) error

func (*WakuFilterLightnode) Ping added in v0.6.0

func (wf *WakuFilterLightnode) Ping(ctx context.Context, peerID peer.ID) error

func (*WakuFilterLightnode) SetHost added in v0.6.0

func (wf *WakuFilterLightnode) SetHost(h host.Host)

Sets the host to be able to mount or consume a protocol

func (*WakuFilterLightnode) Start added in v0.6.0

func (wf *WakuFilterLightnode) Start(ctx context.Context) error

func (*WakuFilterLightnode) Stop added in v0.6.0

func (wf *WakuFilterLightnode) Stop()

Stop unmounts the filter protocol

func (*WakuFilterLightnode) Subscribe added in v0.6.0

func (wf *WakuFilterLightnode) Subscribe(ctx context.Context, contentFilter ContentFilter, opts ...FilterSubscribeOption) (*SubscriptionDetails, error)

Subscribe setups a subscription to receive messages that match a specific content filter

func (*WakuFilterLightnode) Subscriptions added in v0.6.0

func (wf *WakuFilterLightnode) Subscriptions() []*SubscriptionDetails

func (*WakuFilterLightnode) Unsubscribe added in v0.6.0

func (wf *WakuFilterLightnode) Unsubscribe(ctx context.Context, contentFilter ContentFilter, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)

Unsubscribe is used to stop receiving messages from a peer that match a content filter

func (*WakuFilterLightnode) UnsubscribeAll added in v0.6.0

func (wf *WakuFilterLightnode) UnsubscribeAll(ctx context.Context, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)

UnsubscribeAll is used to stop receiving messages from peer(s). It does not close subscriptions

func (*WakuFilterLightnode) UnsubscribeWithSubscription added in v0.6.0

func (wf *WakuFilterLightnode) UnsubscribeWithSubscription(ctx context.Context, sub *SubscriptionDetails, opts ...FilterUnsubscribeOption) (<-chan WakuFilterPushResult, error)

Unsubscribe is used to stop receiving messages from a peer that match a content filter

type WakuFilterPushResult added in v0.6.0

type WakuFilterPushResult struct {
	Err    error
	PeerID peer.ID
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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