// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. package einterfaces import ( "github.com/mattermost/mattermost-server/model" ) type ClusterMessageHandler func(msg *model.ClusterMessage) type ClusterInterface interface { StartInterNodeCommunication() StopInterNodeCommunication() RegisterClusterMessageHandler(event string, crm ClusterMessageHandler) GetClusterId() string IsLeader() bool GetMyClusterInfo() *model.ClusterInfo GetClusterInfos() []*model.ClusterInfo SendClusterMessage(cluster *model.ClusterMessage) NotifyMsg(buf []byte) GetClusterStats() ([]*model.ClusterStats, *model.AppError) GetLogs(page, perPage int) ([]string, *model.AppError) ConfigChanged(previousConfig *model.Config, newConfig *model.Config, sendToOtherServer bool) *model.AppError } var theClusterInterface ClusterInterface func RegisterClusterInterface(newInterface ClusterInterface) { theClusterInterface = newInterface } func GetClusterInterface() ClusterInterface { return theClusterInterface }