Browse Source

rpc/client: include NetworkClient interface into Client interface (#3473)

I think it's nice when the Client interface has all the methods. If someone does not need a particular method/set of methods, she can use individual interfaces (e.g. NetworkClient, MempoolClient) or write her own interface.

technically breaking

Fixes #3458
pull/2774/head
Anton Kaliaev 5 years ago
committed by GitHub
parent
commit
a4d9539544
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 15 deletions
  1. +1
    -0
      CHANGELOG_PENDING.md
  2. +1
    -5
      rpc/client/httpclient.go
  3. +3
    -5
      rpc/client/interface.go
  4. +1
    -5
      rpc/client/localclient.go
  5. +12
    -0
      rpc/client/mock/client.go

+ 1
- 0
CHANGELOG_PENDING.md View File

@ -10,6 +10,7 @@
* Go API
- [libs/common] Remove RepeatTimer (also TimerMaker and Ticker interface)
- [rpc/client] \#3458 Include NetworkClient interface into Client interface
* Blockchain Protocol


+ 1
- 5
rpc/client/httpclient.go View File

@ -52,11 +52,7 @@ func NewHTTP(remote, wsEndpoint string) *HTTP {
}
}
var (
_ Client = (*HTTP)(nil)
_ NetworkClient = (*HTTP)(nil)
_ EventsClient = (*HTTP)(nil)
)
var _ Client = (*HTTP)(nil)
func (c *HTTP) Status() (*ctypes.ResultStatus, error) {
result := new(ctypes.ResultStatus)


+ 3
- 5
rpc/client/interface.go View File

@ -72,17 +72,15 @@ type StatusClient interface {
type Client interface {
cmn.Service
ABCIClient
SignClient
EventsClient
HistoryClient
NetworkClient
SignClient
StatusClient
EventsClient
}
// NetworkClient is general info about the network state. May not
// be needed usually.
//
// Not included in the Client interface, but generally implemented
// by concrete implementations.
type NetworkClient interface {
NetInfo() (*ctypes.ResultNetInfo, error)
DumpConsensusState() (*ctypes.ResultDumpConsensusState, error)


+ 1
- 5
rpc/client/localclient.go View File

@ -58,11 +58,7 @@ func NewLocal(node *nm.Node) *Local {
}
}
var (
_ Client = (*Local)(nil)
_ NetworkClient = (*Local)(nil)
_ EventsClient = (*Local)(nil)
)
var _ Client = (*Local)(nil)
// SetLogger allows to set a logger on the client.
func (c *Local) SetLogger(l log.Logger) {


+ 12
- 0
rpc/client/mock/client.go View File

@ -108,6 +108,18 @@ func (c Client) NetInfo() (*ctypes.ResultNetInfo, error) {
return core.NetInfo(&rpctypes.Context{})
}
func (c Client) ConsensusState() (*ctypes.ResultConsensusState, error) {
return core.ConsensusState(&rpctypes.Context{})
}
func (c Client) DumpConsensusState() (*ctypes.ResultDumpConsensusState, error) {
return core.DumpConsensusState(&rpctypes.Context{})
}
func (c Client) Health() (*ctypes.ResultHealth, error) {
return core.Health(&rpctypes.Context{})
}
func (c Client) DialSeeds(seeds []string) (*ctypes.ResultDialSeeds, error) {
return core.UnsafeDialSeeds(&rpctypes.Context{}, seeds)
}


Loading…
Cancel
Save