mirror of https://github.com/grafana/grafana
Chore: Remove live from models (#61711)
parent
0d42edddbf
commit
cacc55ba06
@ -0,0 +1,87 @@ |
||||
package model |
||||
|
||||
import ( |
||||
"context" |
||||
"encoding/json" |
||||
"time" |
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/backend" |
||||
|
||||
"github.com/grafana/grafana/pkg/services/user" |
||||
) |
||||
|
||||
// ChannelPublisher writes data into a channel. Note that permissions are not checked.
|
||||
type ChannelPublisher func(orgID int64, channel string, data []byte) error |
||||
|
||||
// ChannelClientCount will return the number of clients for a channel
|
||||
type ChannelClientCount func(orgID int64, channel string) (int, error) |
||||
|
||||
// SubscribeEvent contains subscription data.
|
||||
type SubscribeEvent struct { |
||||
Channel string |
||||
Path string |
||||
Data json.RawMessage |
||||
} |
||||
|
||||
// SubscribeReply is a reaction to SubscribeEvent.
|
||||
type SubscribeReply struct { |
||||
Presence bool |
||||
JoinLeave bool |
||||
Recover bool |
||||
Data json.RawMessage |
||||
} |
||||
|
||||
// PublishEvent contains publication data.
|
||||
type PublishEvent struct { |
||||
Channel string |
||||
Path string |
||||
Data json.RawMessage |
||||
} |
||||
|
||||
// PublishReply is a reaction to PublishEvent.
|
||||
type PublishReply struct { |
||||
// By default, it's a handler responsibility to publish data
|
||||
// into a stream upon OnPublish but returning a data here
|
||||
// will make Grafana Live publish data itself (i.e. stream handler
|
||||
// just works as permission proxy in this case).
|
||||
Data json.RawMessage |
||||
// HistorySize sets a stream history size.
|
||||
HistorySize int |
||||
// HistoryTTL is a time that messages will live in stream history.
|
||||
HistoryTTL time.Duration |
||||
} |
||||
|
||||
// ChannelHandler defines the core channel behavior
|
||||
type ChannelHandler interface { |
||||
// OnSubscribe is called when a client wants to subscribe to a channel
|
||||
OnSubscribe(ctx context.Context, user *user.SignedInUser, e SubscribeEvent) (SubscribeReply, backend.SubscribeStreamStatus, error) |
||||
|
||||
// OnPublish is called when a client writes a message to the channel websocket.
|
||||
OnPublish(ctx context.Context, user *user.SignedInUser, e PublishEvent) (PublishReply, backend.PublishStreamStatus, error) |
||||
} |
||||
|
||||
// ChannelHandlerFactory should be implemented by all core features.
|
||||
type ChannelHandlerFactory interface { |
||||
// GetHandlerForPath gets a ChannelHandler for a path.
|
||||
// This is called fast and often -- it must be synchronized
|
||||
GetHandlerForPath(path string) (ChannelHandler, error) |
||||
} |
||||
|
||||
type LiveMessage struct { |
||||
Id int64 |
||||
OrgId int64 |
||||
Channel string |
||||
Data json.RawMessage |
||||
Published time.Time |
||||
} |
||||
|
||||
type SaveLiveMessageQuery struct { |
||||
OrgId int64 |
||||
Channel string |
||||
Data json.RawMessage |
||||
} |
||||
|
||||
type GetLiveMessageQuery struct { |
||||
OrgId int64 |
||||
Channel string |
||||
} |
Loading…
Reference in new issue