4 Star 10 Fork 4

Gitee 极速下载/go-dqlite

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/canonical/go-dqlite
克隆/下载
store.go 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
package client
import (
"context"
"github.com/CanonicalLtd/go-dqlite/internal/bindings"
)
// ServerInfo holds information about a single server.
type ServerInfo = bindings.ServerInfo
// ServerStore is used by a dqlite client to get an initial list of candidate
// dqlite servers that it can dial in order to find a leader server to connect
// to.
//
// Once connected, the client periodically updates the server addresses in the
// store by querying the leader about changes in the cluster (such as servers
// being added or removed).
type ServerStore interface {
// Get return the list of known servers.
Get(context.Context) ([]ServerInfo, error)
// Set updates the list of known cluster servers.
Set(context.Context, []ServerInfo) error
}
// InmemServerStore keeps the list of servers in memory.
type InmemServerStore struct {
servers []ServerInfo
}
// NewInmemServerStore creates ServerStore which stores its data in-memory.
func NewInmemServerStore() *InmemServerStore {
return &InmemServerStore{
servers: make([]ServerInfo, 0),
}
}
// Get the current servers.
func (i *InmemServerStore) Get(ctx context.Context) ([]ServerInfo, error) {
return i.servers, nil
}
// Set the servers.
func (i *InmemServerStore) Set(ctx context.Context, servers []ServerInfo) error {
i.servers = servers
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/mirrors/go-dqlite.git
git@gitee.com:mirrors/go-dqlite.git
mirrors
go-dqlite
go-dqlite
v0.2.1

搜索帮助