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

Method processFrontendUpdate

tsunami/engine/serverhandlers.go:177–220  ·  view source on GitHub ↗
(feUpdate *rpctypes.VDomFrontendUpdate)

Source from the content-addressed store, hash-verified

175}
176
177func (h *httpHandlers) processFrontendUpdate(feUpdate *rpctypes.VDomFrontendUpdate) (*rpctypes.VDomBackendUpdate, error) {
178 h.renderLock.Lock()
179 defer h.renderLock.Unlock()
180
181 if feUpdate.Dispose {
182 log.Printf("got dispose from frontend\n")
183 h.Client.doShutdown("got dispose from frontend")
184 return nil, nil
185 }
186
187 if h.Client.GetIsDone() {
188 return nil, nil
189 }
190
191 h.Client.Root.RenderTs = feUpdate.Ts
192
193 // Close all open modals on resync (e.g., page refresh)
194 if feUpdate.Resync {
195 h.Client.CloseAllModals()
196 }
197
198 // run events
199 h.Client.RunEvents(feUpdate.Events)
200 // update refs
201 for _, ref := range feUpdate.RefUpdates {
202 h.Client.Root.UpdateRef(ref)
203 }
204
205 var update *rpctypes.VDomBackendUpdate
206 var renderErr error
207
208 if feUpdate.Resync || true {
209 update, renderErr = h.Client.fullRender()
210 } else {
211 update, renderErr = h.Client.incrementalRender()
212 }
213
214 if renderErr != nil {
215 return nil, renderErr
216 }
217
218 update.CreateTransferElems()
219 return update, nil
220}
221
222func (h *httpHandlers) handleData(w http.ResponseWriter, r *http.Request) {
223 defer func() {

Callers 1

handleRenderMethod · 0.95

Calls 8

CreateTransferElemsMethod · 0.95
CloseAllModalsMethod · 0.80
RunEventsMethod · 0.80
doShutdownMethod · 0.45
GetIsDoneMethod · 0.45
UpdateRefMethod · 0.45
fullRenderMethod · 0.45
incrementalRenderMethod · 0.45

Tested by

no test coverage detected