// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. package einterfaces import ( "github.com/mattermost/mattermost/server/public/model" ) type ClusterMessageHandler func(msg *model.ClusterMessage) type ClusterInterface interface { StartInterNodeCommunication() StopInterNodeCommunication() RegisterClusterMessageHandler(event model.ClusterEvent, crm ClusterMessageHandler) GetClusterId() string IsLeader() bool // HealthScore returns a number which is indicative of how well an instance is meeting // the soft real-time requirements of the protocol. Lower numbers are better, // and zero means "totally healthy". HealthScore() int GetMyClusterInfo() *model.ClusterInfo GetClusterInfos() []*model.ClusterInfo SendClusterMessage(msg *model.ClusterMessage) SendClusterMessageToNode(nodeID string, msg *model.ClusterMessage) error NotifyMsg(buf []byte) GetClusterStats() ([]*model.ClusterStats, *model.AppError) GetLogs(page, perPage int) ([]string, *model.AppError) QueryLogs(page, perPage int) (map[string][]string, *model.AppError) GetPluginStatuses() (model.PluginStatuses, *model.AppError) ConfigChanged(previousConfig *model.Config, newConfig *model.Config, sendToOtherServer bool) *model.AppError // WebConnCountForUser returns the number of active webconn connections // for a given userID. WebConnCountForUser(userID string) (int, *model.AppError) }