systree

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2018 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewTree

func NewTree(base string) (Provider, []types.RetainObject, []DynamicValue, error)

NewTree allocate systree provider

Types

type BytesMetric

type BytesMetric interface {
	Sent(bytes uint64)
	Received(bytes uint64)
}

BytesMetric bytes metric

type ClientConnectStatus

type ClientConnectStatus struct {
	Address      string                 `json:"ipaddress"`
	Username     string                 `json:"username"`
	Timestamp    int64                  `json:"ts"`
	CleanSession bool                   `json:"session"`
	Protocol     packet.ProtocolVersion `json:"protocol"`
	ConnAckCode  packet.ReasonCode      `json:"connack"`
}

ClientConnectStatus is argument to client connected state

type Clients

type Clients interface {
	Connected(id string, status *ClientConnectStatus)
	Disconnected(id string, reason packet.ReasonCode, retain bool)
}

Clients Statistic of sessions

type DynamicValue

type DynamicValue interface {
	Topic() string
	// Retained used by topics provider to get retained message when there is new subscription to given topic
	Retained() *packet.Publish
	// Publish used by systree update routine to publish new value when on periodic basis
	Publish() *packet.Publish
}

DynamicValue interface describes states of the dynamic value

type MessagesStat added in v0.0.4

type MessagesStat interface {
	Sent(t packet.QosType)
	Received(t packet.QosType)
}

type Metric

type Metric interface {
	Bytes() BytesMetric
	Packets() PacketsMetric
	Messages() MessagesStat
}

Metric is wrap around all of metrics

type PacketsMetric

type PacketsMetric interface {
	Sent(t packet.Type)
	Received(t packet.Type)
}

PacketsMetric packets metric

type Provider

type Provider interface {
	SetCallbacks(types.TopicMessenger)
	Metric() Metric
	Topics() TopicsStat
	Subscriptions() SubscriptionsStat
	Clients() Clients
	Sessions() Sessions
}

Provider systree provider

type SessionCreatedStatus

type SessionCreatedStatus struct {
	ExpiryInterval string `json:"expiryInterval,omitempty"`
	WillDelay      string `json:"willDelay,omitempty"`
	Timestamp      string `json:"timestamp"`
	Clean          bool   `json:"clean"`
}

SessionCreatedStatus report when session status once created

type SessionDeletedStatus

type SessionDeletedStatus struct {
	Timestamp string `json:"timestamp"`
	Reason    string `json:"reason"`
}

SessionDeletedStatus report when session status once deleted

type Sessions

type Sessions interface {
	Created(id string, status *SessionCreatedStatus)
	Removed(id string, status *SessionDeletedStatus)
}

Sessions Statistic of sessions

type SubscriptionsStat

type SubscriptionsStat interface {
	Subscribed()
	UnSubscribed()
}

SubscriptionsStat statistic of subscriptions

type TopicsStat

type TopicsStat interface {
	Added()
	Removed()
}

TopicsStat statistic of topics

Jump to

Keyboard shortcuts

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