提交 25d0ce8f 作者: Juan Batiz-Benet 提交者: Brian Tiger Chow

NoResponse service

上级 69b1ce42
...@@ -10,6 +10,10 @@ import ( ...@@ -10,6 +10,10 @@ import (
context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context" context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
) )
// ErrNoResponse is returned by Service when a Request did not get a response,
// and no other error happened
var ErrNoResponse = errors.New("no response to request")
// Handler is an interface that objects must implement in order to handle // Handler is an interface that objects must implement in order to handle
// a service's requests. // a service's requests.
type Handler interface { type Handler interface {
...@@ -134,6 +138,10 @@ func (s *Service) SendRequest(ctx context.Context, m msg.NetMessage) (msg.NetMes ...@@ -134,6 +138,10 @@ func (s *Service) SendRequest(ctx context.Context, m msg.NetMessage) (msg.NetMes
err = ctx.Err() err = ctx.Err()
} }
if m == nil {
return nil, ErrNoResponse
}
return m, err return m, err
} }
...@@ -205,6 +213,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) { ...@@ -205,6 +213,7 @@ func (s *Service) handleIncomingMessage(ctx context.Context, m msg.NetMessage) {
} }
} }
// SetHandler assigns the request Handler for this service.
func (s *Service) SetHandler(h Handler) { func (s *Service) SetHandler(h Handler) {
s.Handler = h s.Handler = h
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论