gecko/vms/rpcchainvm/ghttp/gwriter/writer_server.go

33 lines
769 B
Go
Raw Normal View History

2020-04-16 23:03:17 -07:00
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package gwriter
import (
"context"
"io"
2020-04-17 06:47:19 -07:00
"github.com/ava-labs/gecko/vms/rpcchainvm/ghttp/gwriter/gwriterproto"
2020-04-16 23:03:17 -07:00
)
// Server is a http.Handler that is managed over RPC.
type Server struct{ writer io.Writer }
// NewServer returns a http.Handler instance manage remotely
func NewServer(writer io.Writer) *Server {
return &Server{writer: writer}
}
// Write ...
2020-04-17 06:47:19 -07:00
func (s *Server) Write(ctx context.Context, req *gwriterproto.WriteRequest) (*gwriterproto.WriteResponse, error) {
2020-04-16 23:03:17 -07:00
n, err := s.writer.Write(req.Payload)
2020-04-17 06:47:19 -07:00
resp := &gwriterproto.WriteResponse{
2020-04-16 23:03:17 -07:00
Written: int32(n),
}
if err != nil {
resp.Errored = true
resp.Error = err.Error()
}
return resp, nil
}