MCPcopy
hub / github.com/wavetermdev/waveterm / SendResponse

Method SendResponse

pkg/wshutil/wshrpc.go:681–709  ·  view source on GitHub ↗
(data any, done bool)

Source from the content-addressed store, hash-verified

679}
680
681func (handler *RpcResponseHandler) SendResponse(data any, done bool) error {
682 defer func() {
683 panichandler.PanicHandler("SendResponse", recover())
684 }()
685 if handler.done.Load() {
686 return fmt.Errorf("request already done, cannot send additional response")
687 }
688 if done {
689 defer handler.close()
690 }
691 if handler.reqId == "" {
692 return nil
693 }
694 msg := &RpcMessage{
695 ResId: handler.reqId,
696 Data: data,
697 Cont: !done,
698 }
699 barr, err := json.Marshal(msg)
700 if err != nil {
701 return err
702 }
703 select {
704 case handler.w.OutputCh <- barr:
705 return nil
706 case <-handler.ctx.Done():
707 return fmt.Errorf("timeout sending response")
708 }
709}
710
711func (handler *RpcResponseHandler) SendResponseError(err error) {
712 defer func() {

Callers 2

FinalizeMethod · 0.95
serverImplAdapterFunction · 0.80

Calls 2

closeMethod · 0.95
PanicHandlerFunction · 0.92

Tested by

no test coverage detected