MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / trySendDataLocked

Method trySendDataLocked

pkg/streamclient/streamwriter.go:142–168  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

140}
141
142func (w *Writer) trySendDataLocked() bool {
143 availWindow := w.readWindow - w.sentNotAcked
144 if availWindow <= 0 {
145 return false
146 }
147
148 toSend := len(w.buffer)
149 if int64(toSend) > availWindow {
150 toSend = int(availWindow)
151 }
152
153 data := w.buffer[:toSend]
154 w.buffer = w.buffer[toSend:]
155
156 dataStr := base64.StdEncoding.EncodeToString(data)
157 dataPk := wshrpc.CommandStreamData{
158 Id: w.id,
159 Seq: w.nextSeq,
160 Data64: dataStr,
161 }
162
163 w.dataSender.SendData(dataPk)
164 w.nextSeq += int64(toSend)
165 w.sentNotAcked += int64(toSend)
166
167 return toSend > 0
168}
169
170// If Close() is called while a Write is blocked, the Write will return an error and buffered data may be discarded.
171func (w *Writer) Close() error {

Callers 1

WriteMethod · 0.95

Calls 1

SendDataMethod · 0.65

Tested by

no test coverage detected