Documentation ¶
Index ¶
- Constants
- func NewClient(options ClientOptions) (topologypbconnect.TopologyServiceClient, error)
- type ClientOptions
- type LevelDBStorage
- type MemoryStorage
- type Server
- func (s *Server) AddServer(ctx context.Context, request *connect.Request[topologypb.AddServerRequest]) (*connect.Response[topologypb.AddServerResponse], error)
- func (s *Server) GetServer(ctx context.Context, request *connect.Request[topologypb.GetServerRequest]) (*connect.Response[topologypb.GetServerResponse], error)
- func (s *Server) ListServers(ctx context.Context, request *connect.Request[topologypb.ListServersRequest]) (*connect.Response[topologypb.ListServersResponse], error)
- type Storage
Constants ¶
const DefaultDialTimeout = 10 * time.Second
Variables ¶
This section is empty.
Functions ¶
func NewClient ¶
func NewClient(options ClientOptions) (topologypbconnect.TopologyServiceClient, error)
Types ¶
type ClientOptions ¶
type ClientOptions struct { // BaseURL specifies the base URL to send requests to. Use the h2c:// scheme to use H2C. BaseURL string // DialTimeout specifies the maximum amount of time to dial the topology server in a request. // If unspecified, this will be [DefaultDialTimeout]. DialTimeout time.Duration }
type LevelDBStorage ¶
type LevelDBStorage struct {
// contains filtered or unexported fields
}
LevelDBStorage implements topology storage on top of LevelDB.
func NewLevelDBStorage ¶
func NewLevelDBStorage(db *leveldb.DB) *LevelDBStorage
NewLevelDBStorage creates a new LevelDB-backed storage engine.
func (*LevelDBStorage) Get ¶
func (s *LevelDBStorage) Get(id uint16) (*topologypb.ServerEntry, error)
Get implements topology.Storage.
func (*LevelDBStorage) List ¶
func (s *LevelDBStorage) List() ([]*topologypb.ServerEntry, error)
List implements topology.Storage.
func (*LevelDBStorage) Put ¶
func (s *LevelDBStorage) Put(id uint16, server *topologypb.ServerEntry) error
Put implements topology.Storage.
type MemoryStorage ¶
type MemoryStorage struct {
// contains filtered or unexported fields
}
MemoryStorage implements topology storage on top of memory. MemoryStorage defensively deep-copies all protobufs to prevent any pointers from being shared amongst users and the storage layers, similar to a database engine that would require marshalling and unmarshalling.
func NewMemoryStorage ¶
func NewMemoryStorage(entries []*topologypb.ServerEntry) *MemoryStorage
NewMemoryStorage creates a new memory store with the provided servers.
func (*MemoryStorage) Get ¶
func (s *MemoryStorage) Get(id uint16) (*topologypb.ServerEntry, error)
Get implements topology.Storage.
func (*MemoryStorage) List ¶
func (s *MemoryStorage) List() ([]*topologypb.ServerEntry, error)
List implements topology.Storage.
func (*MemoryStorage) Put ¶
func (s *MemoryStorage) Put(id uint16, entry *topologypb.ServerEntry) error
Put implements topology.Storage.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server implements TopologyServiceServer.
func (*Server) AddServer ¶
func (s *Server) AddServer(ctx context.Context, request *connect.Request[topologypb.AddServerRequest]) (*connect.Response[topologypb.AddServerResponse], error)
AddServer implements TopologyServiceServer.
func (*Server) GetServer ¶
func (s *Server) GetServer(ctx context.Context, request *connect.Request[topologypb.GetServerRequest]) (*connect.Response[topologypb.GetServerResponse], error)
GetServer implements TopologyServiceServer.
func (*Server) ListServers ¶
func (s *Server) ListServers(ctx context.Context, request *connect.Request[topologypb.ListServersRequest]) (*connect.Response[topologypb.ListServersResponse], error)
ListServers implements TopologyServiceServer.
type Storage ¶
type Storage interface { Get(id uint16) (*topologypb.ServerEntry, error) Put(id uint16, server *topologypb.ServerEntry) error List() ([]*topologypb.ServerEntry, error) }
Storage implementations implement a storage layer for the topology.