badger

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hook

type Hook struct {
	mqtt.HookBase
	// contains filtered or unexported fields
}

Hook is a persistent storage hook based using BadgerDB file store as a backend.

func (*Hook) Debugf

func (h *Hook) Debugf(m string, v ...any)

Debugf satisfies the badger interface for a debug logger.

func (*Hook) Errorf

func (h *Hook) Errorf(m string, v ...any)

Errorf satisfies the badger interface for an error logger.

func (*Hook) ID

func (h *Hook) ID() string

ID returns the id of the hook.

func (*Hook) Infof

func (h *Hook) Infof(m string, v ...any)

Infof satisfies the badger interface for an info logger.

func (*Hook) Init

func (h *Hook) Init(config any) error

Init initializes and connects to the badger instance.

func (*Hook) OnClientExpired

func (h *Hook) OnClientExpired(cl *mqtt.Client)

OnClientExpired deleted expired clients from the store.

func (*Hook) OnDisconnect

func (h *Hook) OnDisconnect(cl *mqtt.Client, _ error, expire bool)

OnDisconnect removes a client from the store if their session has expired.

func (*Hook) OnQosComplete

func (h *Hook) OnQosComplete(cl *mqtt.Client, pk packets.Packet)

OnQosComplete removes a resolved inflight message from the store.

func (*Hook) OnQosDropped

func (h *Hook) OnQosDropped(cl *mqtt.Client, pk packets.Packet)

OnQosDropped removes a dropped inflight message from the store.

func (*Hook) OnQosPublish

func (h *Hook) OnQosPublish(cl *mqtt.Client, pk packets.Packet, sent int64, resends int)

OnQosPublish adds or updates an inflight message in the store.

func (*Hook) OnRetainMessage

func (h *Hook) OnRetainMessage(cl *mqtt.Client, pk packets.Packet, r int64)

OnRetainMessage adds a retained message for a topic to the store.

func (*Hook) OnRetainedExpired

func (h *Hook) OnRetainedExpired(filter string)

OnRetainedExpired deletes expired retained messages from the store.

func (*Hook) OnSessionEstablished

func (h *Hook) OnSessionEstablished(cl *mqtt.Client, pk packets.Packet)

OnSessionEstablished adds a client to the store when their session is established.

func (*Hook) OnSubscribed

func (h *Hook) OnSubscribed(cl *mqtt.Client, pk packets.Packet, reasonCodes []byte)

OnSubscribed adds one or more client subscriptions to the store.

func (*Hook) OnSysInfoTick

func (h *Hook) OnSysInfoTick(sys *system.Info)

OnSysInfoTick stores the latest system info in the store.

func (*Hook) OnUnsubscribed

func (h *Hook) OnUnsubscribed(cl *mqtt.Client, pk packets.Packet)

OnUnsubscribed removes one or more client subscriptions from the store.

func (*Hook) OnWillSent

func (h *Hook) OnWillSent(cl *mqtt.Client, pk packets.Packet)

OnWillSent is called when a client sends a Will Message and the Will Message is removed from the client record.

func (*Hook) Provides

func (h *Hook) Provides(b byte) bool

Provides indicates which hook methods this hook provides.

func (*Hook) Stop

func (h *Hook) Stop() error

Stop closes the badger instance.

func (*Hook) StoredClients

func (h *Hook) StoredClients() (v []storage.Client, err error)

StoredClients returns all stored clients from the store.

func (*Hook) StoredInflightMessages

func (h *Hook) StoredInflightMessages() (v []storage.Message, err error)

StoredInflightMessages returns all stored inflight messages from the store.

func (*Hook) StoredRetainedMessages

func (h *Hook) StoredRetainedMessages() (v []storage.Message, err error)

StoredRetainedMessages returns all stored retained messages from the store.

func (*Hook) StoredSubscriptions

func (h *Hook) StoredSubscriptions() (v []storage.Subscription, err error)

StoredSubscriptions returns all stored subscriptions from the store.

func (*Hook) StoredSysInfo

func (h *Hook) StoredSysInfo() (v storage.SystemInfo, err error)

StoredSysInfo returns the system info from the store.

func (*Hook) Warningf

func (h *Hook) Warningf(m string, v ...any)

Warningf satisfies the badger interface for a warning logger.

type Options

type Options struct {
	Options *badgerdb.Options
	Path    string `yaml:"path" json:"path"`
	// GcDiscardRatio specifies the ratio of log discard compared to the maximum possible log discard.
	// Setting it to a higher value would result in fewer space reclaims, while setting it to a lower value
	// would result in more space reclaims at the cost of increased activity on the LSM tree.
	// discardRatio must be in the range (0.0, 1.0), both endpoints excluded, otherwise, it will be set to the default value of 0.5.
	GcDiscardRatio float64 `yaml:"gc_discard_ratio" json:"gc_discard_ratio"`
	GcInterval     int64   `yaml:"gc_interval" json:"gc_interval"`
}

Options contains configuration settings for the BadgerDB instance.

type Serializable

type Serializable interface {
	UnmarshalBinary([]byte) error
	MarshalBinary() (data []byte, err error)
}

Serializable is an interface for objects that can be serialized and deserialized.

Jump to

Keyboard shortcuts

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