diff --git a/client/rpc_response.go b/client/rpc_response.go new file mode 100644 index 00000000..d5c4e894 --- /dev/null +++ b/client/rpc_response.go @@ -0,0 +1,35 @@ +package client + +import ( + "github.com/micro/go-micro/codec" + "github.com/micro/go-micro/transport" +) + +type rpcResponse struct { + header map[string]string + body []byte + socket transport.Socket + codec codec.Codec +} + +func (r *rpcResponse) Codec() codec.Writer { + return r.codec +} + +func (r *rpcResponse) Header() map[string]string { + return r.header +} + +func (r *rpcResponse) Read() ([]byte, error) { + var msg transport.Message + + if err := r.socket.Recv(&msg); err != nil { + return nil, err + } + + // set internals + r.header = msg.Header + r.body = msg.Body + + return msg.Body, nil +}