Skip to content

Commit

Permalink
UploadResponse now has 'oneof' clause for better API design
Browse files Browse the repository at this point in the history
  • Loading branch information
cmaglie committed Jul 31, 2023
1 parent 62bb4c4 commit d0f143e
Show file tree
Hide file tree
Showing 3 changed files with 171 additions and 130 deletions.
12 changes: 10 additions & 2 deletions commands/daemon/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,16 @@ func (s *ArduinoCoreServerImpl) PlatformList(ctx context.Context, req *rpc.Platf
// Upload FIXMEDOC
func (s *ArduinoCoreServerImpl) Upload(req *rpc.UploadRequest, stream rpc.ArduinoCoreService_UploadServer) error {
syncSend := NewSynchronizedSend(stream.Send)
outStream := feedStreamTo(func(data []byte) { syncSend.Send(&rpc.UploadResponse{OutStream: data}) })
errStream := feedStreamTo(func(data []byte) { syncSend.Send(&rpc.UploadResponse{ErrStream: data}) })
outStream := feedStreamTo(func(data []byte) {
syncSend.Send(&rpc.UploadResponse{
Message: &rpc.UploadResponse_OutStream{OutStream: data},
})
})
errStream := feedStreamTo(func(data []byte) {
syncSend.Send(&rpc.UploadResponse{
Message: &rpc.UploadResponse_ErrStream{ErrStream: data},
})
})
err := upload.Upload(stream.Context(), req, outStream, errStream)
outStream.Close()
errStream.Close()
Expand Down
Loading

0 comments on commit d0f143e

Please sign in to comment.