topics

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2021 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Index

type Index struct {
	Root *Leaf // a leaf containing a message and more leaves.
	// contains filtered or unexported fields
}

Index is a prefix/trie tree containing topic subscribers and retained messages.

func New

func New() *Index

New returns a pointer to a new instance of Index.

func (*Index) Messages

func (x *Index) Messages(filter string) []packets.Packet

Messages returns a slice of retained topic messages which match a filter.

func (*Index) RetainMessage

func (x *Index) RetainMessage(msg packets.Packet) int64

RetainMessage saves a message payload to the end of a topic branch. Returns 1 if a retained message was added, 0 if there was no change, and -1 if the retained message was removed.

func (*Index) Subscribe

func (x *Index) Subscribe(filter, client string, qos byte) bool

Subscribe creates a subscription filter for a client. Returns true if the subscription was new.

func (*Index) Subscribers

func (x *Index) Subscribers(topic string) Subscriptions

Subscribers returns a map of clients who are subscribed to matching filters.

func (*Index) Unsubscribe

func (x *Index) Unsubscribe(filter, client string) bool

Unsubscribe removes a subscription filter for a client. Returns true if an unsubscribe action successful and the subscription existed.

type Leaf

type Leaf struct {
	Key     string           // the key that was used to create the leaf.
	Parent  *Leaf            // a pointer to the parent node for the leaf.
	Leaves  map[string]*Leaf // a map of child nodes, keyed on particle id.
	Clients map[string]byte  // a map of client ids subscribed to the topic.
	Filter  string           // the path of the topic filter being matched.
	Message packets.Packet   // a message which has been retained for a specific topic.
}

Leaf is a child node on the tree.

type Subscriptions

type Subscriptions map[string]byte

Subscriptions is a map of subscriptions keyed on client.

Jump to

Keyboard shortcuts

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