change(tracker): send percent of removed nodes instead of int

This commit is contained in:
nick-delirium 2023-03-10 11:49:53 +01:00 committed by Delirium
parent f9872f5965
commit a34d557f7f
4 changed files with 11 additions and 7 deletions

View file

@ -653,8 +653,8 @@ class MessageCodec(Codec):
) )
if message_id == 115: if message_id == 115:
return RemovedNodesCount( return UnbindNodes(
nodes_count=self.read_uint(reader) total_removed_percent=self.read_uint(reader)
) )
if message_id == 125: if message_id == 125:

View file

@ -448,7 +448,6 @@ end
# 90-111 reserved iOS # 90-111 reserved iOS
message 112, 'InputChange', :replayer => false do message 112, 'InputChange', :replayer => false do
uint 'ID' uint 'ID'
string 'Value' string 'Value'
@ -468,8 +467,8 @@ message 114, 'MouseThrashing' do
uint 'Timestamp' uint 'Timestamp'
end end
message 115, 'RemovedNodesCount', :replayer => false do message 115, 'UnbindNodes', :replayer => false do
uint 'NodesCount' uint 'TotalRemovedPercent'
end end
## Backend-only ## Backend-only

View file

@ -73,6 +73,10 @@ export default class Nodes {
return this.nodes[id] return this.nodes[id]
} }
getNodeCount() {
return this.nodes.filter(Boolean).length
}
clear(): void { clear(): void {
for (let id = 0; id < this.nodes.length; id++) { for (let id = 0; id < this.nodes.length; id++) {
const node = this.nodes[id] const node = this.nodes[id]

View file

@ -8,7 +8,7 @@ import {
CreateElementNode, CreateElementNode,
MoveNode, MoveNode,
RemoveNode, RemoveNode,
RemovedNodesCount, UnbindNodes,
} from '../messages.gen.js' } from '../messages.gen.js'
import App from '../index.js' import App from '../index.js'
import { import {
@ -237,11 +237,12 @@ export default abstract class Observer {
) )
let removed = 0 let removed = 0
const total = this.app.nodes.getNodeCount()
while (walker.nextNode()) { while (walker.nextNode()) {
removed += 1 removed += 1
this.app.nodes.unregisterNode(walker.currentNode) this.app.nodes.unregisterNode(walker.currentNode)
} }
this.app.send(RemovedNodesCount(removed)) this.app.send(UnbindNodes(Math.floor((removed / total) * 100)))
} }
} }