Bug 1839315: part 4) Link from `SheetLoadData::mWasAlternate` to spec. r=emilio DONTBUILD
[gecko.git] / tools / profiler / docs / fissionprofiler.umlet.uxf
blob3325294e25ed81256984940aa470fb3d67549f59
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <diagram program="umlet" version="14.3.0">
3 <zoom_level>10</zoom_level>
4 <element>
5 <id>UMLClass</id>
6 <coordinates>
7 <x>70</x>
8 <y>110</y>
9 <w>300</w>
10 <h>70</h>
11 </coordinates>
12 <panel_attributes>/PProfilerParent/
13 bg=light_gray
15 *+SendAwaitNextChunkManagerUpdate()*
16 *+SendDestroyReleasedChunksAtOrBefore()*</panel_attributes>
17 <additional_attributes/>
18 </element>
19 <element>
20 <id>UMLClass</id>
21 <coordinates>
22 <x>470</x>
23 <y>20</y>
24 <w>210</w>
25 <h>70</h>
26 </coordinates>
27 <panel_attributes>*ProfileBufferChunkMetadata*
28 bg=light_gray
30 +doneTimeStamp
31 +bufferBytes
32 </panel_attributes>
33 <additional_attributes/>
34 </element>
35 <element>
36 <id>UMLClass</id>
37 <coordinates>
38 <x>780</x>
39 <y>110</y>
40 <w>330</w>
41 <h>70</h>
42 </coordinates>
43 <panel_attributes>/PProfilerChild/
44 bg=light_gray
46 */+RecvAwaitNextChunkManagerUpdate() = 0/*
47 */+RecvDestroyReleasedChunksAtOrBefore() = 0/*
48 </panel_attributes>
49 <additional_attributes/>
50 </element>
51 <element>
52 <id>UMLClass</id>
53 <coordinates>
54 <x>110</x>
55 <y>260</y>
56 <w>220</w>
57 <h>70</h>
58 </coordinates>
59 <panel_attributes>ProfilerParent
61 *-processId*
63 </panel_attributes>
64 <additional_attributes/>
65 </element>
66 <element>
67 <id>Relation</id>
68 <coordinates>
69 <x>210</x>
70 <y>170</y>
71 <w>30</w>
72 <h>110</h>
73 </coordinates>
74 <panel_attributes>lt=&lt;&lt;-</panel_attributes>
75 <additional_attributes>10.0;10.0;10.0;90.0</additional_attributes>
76 </element>
77 <element>
78 <id>UMLClass</id>
79 <coordinates>
80 <x>740</x>
81 <y>250</y>
82 <w>410</w>
83 <h>90</h>
84 </coordinates>
85 <panel_attributes>ProfilerChild
87 -UpdateStorage: unreleased bytes, released: {pid, rangeStart[ ]}
89 *+RecvAwaitNextChunkUpdate()*
90 *+RecvDestroyReleasedChunksAtOrBefore()*
91 </panel_attributes>
92 <additional_attributes/>
93 </element>
94 <element>
95 <id>Relation</id>
96 <coordinates>
97 <x>930</x>
98 <y>170</y>
99 <w>30</w>
100 <h>100</h>
101 </coordinates>
102 <panel_attributes>lt=&lt;&lt;-</panel_attributes>
103 <additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
104 </element>
105 <element>
106 <id>UMLClass</id>
107 <coordinates>
108 <x>110</x>
109 <y>400</y>
110 <w>220</w>
111 <h>70</h>
112 </coordinates>
113 <panel_attributes>ProfilerParentTracker
115 _+Enumerate()_
116 _*+ForChild()*_</panel_attributes>
117 <additional_attributes/>
118 </element>
119 <element>
120 <id>Relation</id>
121 <coordinates>
122 <x>210</x>
123 <y>320</y>
124 <w>190</w>
125 <h>100</h>
126 </coordinates>
127 <panel_attributes>lt=&lt;-
128 m1=0..n
129 nsTArray&lt;ProfilerParent*&gt;</panel_attributes>
130 <additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
131 </element>
132 <element>
133 <id>UMLClass</id>
134 <coordinates>
135 <x>80</x>
136 <y>1070</y>
137 <w>150</w>
138 <h>30</h>
139 </coordinates>
140 <panel_attributes>ProfileBufferChunk</panel_attributes>
141 <additional_attributes/>
142 </element>
143 <element>
144 <id>UMLClass</id>
145 <coordinates>
146 <x>380</x>
147 <y>1070</y>
148 <w>210</w>
149 <h>30</h>
150 </coordinates>
151 <panel_attributes>/ProfileBufferChunkManager/</panel_attributes>
152 <additional_attributes/>
153 </element>
154 <element>
155 <id>UMLClass</id>
156 <coordinates>
157 <x>180</x>
158 <y>900</y>
159 <w>700</w>
160 <h>50</h>
161 </coordinates>
162 <panel_attributes>ProfileBufferChunkManagerWithLocalLimit
164 -mUpdateCallback</panel_attributes>
165 <additional_attributes/>
166 </element>
167 <element>
168 <id>Relation</id>
169 <coordinates>
170 <x>480</x>
171 <y>940</y>
172 <w>30</w>
173 <h>150</h>
174 </coordinates>
175 <panel_attributes>lt=&lt;&lt;-</panel_attributes>
176 <additional_attributes>10.0;130.0;10.0;10.0</additional_attributes>
177 </element>
178 <element>
179 <id>UMLClass</id>
180 <coordinates>
181 <x>380</x>
182 <y>1200</y>
183 <w>210</w>
184 <h>30</h>
185 </coordinates>
186 <panel_attributes>ProfileChunkedBuffer</panel_attributes>
187 <additional_attributes/>
188 </element>
189 <element>
190 <id>Relation</id>
191 <coordinates>
192 <x>410</x>
193 <y>1090</y>
194 <w>140</w>
195 <h>130</h>
196 </coordinates>
197 <panel_attributes>lt=-&gt;&gt;&gt;&gt;
198 mChunkManager</panel_attributes>
199 <additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
200 </element>
201 <element>
202 <id>UMLClass</id>
203 <coordinates>
204 <x>960</x>
205 <y>1200</y>
206 <w>100</w>
207 <h>30</h>
208 </coordinates>
209 <panel_attributes>CorePS</panel_attributes>
210 <additional_attributes/>
211 </element>
212 <element>
213 <id>UMLClass</id>
214 <coordinates>
215 <x>960</x>
216 <y>1040</y>
217 <w>100</w>
218 <h>30</h>
219 </coordinates>
220 <panel_attributes>ActivePS</panel_attributes>
221 <additional_attributes/>
222 </element>
223 <element>
224 <id>Relation</id>
225 <coordinates>
226 <x>580</x>
227 <y>1200</y>
228 <w>400</w>
229 <h>40</h>
230 </coordinates>
231 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
232 mCoreBuffer</panel_attributes>
233 <additional_attributes>10.0;20.0;380.0;20.0</additional_attributes>
234 </element>
235 <element>
236 <id>Relation</id>
237 <coordinates>
238 <x>870</x>
239 <y>940</y>
240 <w>250</w>
241 <h>120</h>
242 </coordinates>
243 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
244 mProfileBufferChunkManager</panel_attributes>
245 <additional_attributes>10.0;10.0;90.0;100.0</additional_attributes>
246 </element>
247 <element>
248 <id>UMLClass</id>
249 <coordinates>
250 <x>830</x>
251 <y>1140</y>
252 <w>100</w>
253 <h>30</h>
254 </coordinates>
255 <panel_attributes>ProfileBuffer</panel_attributes>
256 <additional_attributes/>
257 </element>
258 <element>
259 <id>Relation</id>
260 <coordinates>
261 <x>920</x>
262 <y>1060</y>
263 <w>130</w>
264 <h>110</h>
265 </coordinates>
266 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
267 mProfileBuffer</panel_attributes>
268 <additional_attributes>10.0;90.0;40.0;10.0</additional_attributes>
269 </element>
270 <element>
271 <id>Relation</id>
272 <coordinates>
273 <x>580</x>
274 <y>1160</y>
275 <w>270</w>
276 <h>70</h>
277 </coordinates>
278 <panel_attributes>lt=-&gt;&gt;&gt;&gt;
279 mEntries</panel_attributes>
280 <additional_attributes>10.0;50.0;250.0;10.0</additional_attributes>
281 </element>
282 <element>
283 <id>Relation</id>
284 <coordinates>
285 <x>90</x>
286 <y>1090</y>
287 <w>310</w>
288 <h>150</h>
289 </coordinates>
290 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
291 m1=0..1
292 mCurrentChunk: UniquePtr&lt;&gt;</panel_attributes>
293 <additional_attributes>10.0;10.0;10.0;130.0;290.0;130.0</additional_attributes>
294 </element>
295 <element>
296 <id>Relation</id>
297 <coordinates>
298 <x>210</x>
299 <y>1080</y>
300 <w>200</w>
301 <h>150</h>
302 </coordinates>
303 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
304 m1=0..N
305 mNextChunks: UniquePtr&lt;&gt;</panel_attributes>
306 <additional_attributes>20.0;10.0;170.0;130.0</additional_attributes>
307 </element>
308 <element>
309 <id>Relation</id>
310 <coordinates>
311 <x>200</x>
312 <y>940</y>
313 <w>230</w>
314 <h>150</h>
315 </coordinates>
316 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
317 m1=0..N
318 mReleasedChunks: UniquePtr&lt;&gt;</panel_attributes>
319 <additional_attributes>10.0;130.0;10.0;10.0</additional_attributes>
320 </element>
321 <element>
322 <id>Relation</id>
323 <coordinates>
324 <x>530</x>
325 <y>1090</y>
326 <w>270</w>
327 <h>130</h>
328 </coordinates>
329 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
330 mOwnedChunkManager: UniquePtr&lt;&gt;</panel_attributes>
331 <additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
332 </element>
333 <element>
334 <id>UMLClass</id>
335 <coordinates>
336 <x>480</x>
337 <y>390</y>
338 <w>550</w>
339 <h>150</h>
340 </coordinates>
341 <panel_attributes>*ProfileBufferGlobalController*
343 -mMaximumBytes
344 -mCurrentUnreleasedBytesTotal
345 -mCurrentUnreleasedBytes: {pid, unreleased bytes}[ ] sorted by pid
346 -mCurrentReleasedBytes
347 -mReleasedChunks: {doneTimeStamp, bytes, pid}[ ] sorted by timestamp
348 -mDestructionCallback: function&lt;void(pid, rangeStart)&gt;
350 +Update(pid, unreleased bytes, released: ProfileBufferChunkMetadata[ ])</panel_attributes>
351 <additional_attributes/>
352 </element>
353 <element>
354 <id>Relation</id>
355 <coordinates>
356 <x>320</x>
357 <y>420</y>
358 <w>180</w>
359 <h>40</h>
360 </coordinates>
361 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
362 mController</panel_attributes>
363 <additional_attributes>160.0;20.0;10.0;20.0</additional_attributes>
364 </element>
365 <element>
366 <id>Relation</id>
367 <coordinates>
368 <x>20</x>
369 <y>400</y>
370 <w>110</w>
371 <h>80</h>
372 </coordinates>
373 <panel_attributes>lt=-&gt;&gt;&gt;&gt;&gt;
374 _sInstance_</panel_attributes>
375 <additional_attributes>90.0;60.0;10.0;60.0;10.0;10.0;90.0;10.0</additional_attributes>
376 </element>
377 <element>
378 <id>UMLNote</id>
379 <coordinates>
380 <x>480</x>
381 <y>250</y>
382 <w>220</w>
383 <h>120</h>
384 </coordinates>
385 <panel_attributes>The controller is only needed
386 if there *are* child processes,
387 so we can create it with the first
388 child (at which point the tracker
389 can register itself with the local
390 profiler), and destroyed with the
391 last child.
392 bg=blue</panel_attributes>
393 <additional_attributes/>
394 </element>
395 <element>
396 <id>Relation</id>
397 <coordinates>
398 <x>690</x>
399 <y>330</y>
400 <w>100</w>
401 <h>80</h>
402 </coordinates>
403 <panel_attributes/>
404 <additional_attributes>10.0;10.0;80.0;60.0</additional_attributes>
405 </element>
406 <element>
407 <id>Relation</id>
408 <coordinates>
409 <x>130</x>
410 <y>460</y>
411 <w>200</w>
412 <h>380</h>
413 </coordinates>
414 <panel_attributes>lt=-&gt;&gt;&gt;&gt;
415 mParentChunkManager</panel_attributes>
416 <additional_attributes>180.0;360.0;10.0;360.0;10.0;10.0</additional_attributes>
417 </element>
418 <element>
419 <id>Relation</id>
420 <coordinates>
421 <x>740</x>
422 <y>330</y>
423 <w>350</w>
424 <h>510</h>
425 </coordinates>
426 <panel_attributes>lt=-&gt;&gt;&gt;&gt;
427 mLocalBufferChunkManager</panel_attributes>
428 <additional_attributes>10.0;490.0;330.0;490.0;330.0;10.0</additional_attributes>
429 </element>
430 <element>
431 <id>UMLClass</id>
432 <coordinates>
433 <x>470</x>
434 <y>650</y>
435 <w>400</w>
436 <h>100</h>
437 </coordinates>
438 <panel_attributes>*ProfileBufferControlledChunkManager::Update*
440 -mUnreleasedBytes
441 -mReleasedBytes
442 -mOldestDoneTimeStamp
443 -mNewReleasedChunks: ChunkMetadata[ ]</panel_attributes>
444 <additional_attributes/>
445 </element>
446 <element>
447 <id>UMLClass</id>
448 <coordinates>
449 <x>470</x>
450 <y>560</y>
451 <w>400</w>
452 <h>60</h>
453 </coordinates>
454 <panel_attributes>*ProfileBufferControlledChunkManager::ChunkMetadata*
456 -mDoneTimeStamp
457 -mBufferBytes</panel_attributes>
458 <additional_attributes/>
459 </element>
460 <element>
461 <id>Relation</id>
462 <coordinates>
463 <x>670</x>
464 <y>610</y>
465 <w>30</w>
466 <h>60</h>
467 </coordinates>
468 <panel_attributes>lt=&lt;.</panel_attributes>
469 <additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
470 </element>
471 <element>
472 <id>Relation</id>
473 <coordinates>
474 <x>670</x>
475 <y>740</y>
476 <w>30</w>
477 <h>60</h>
478 </coordinates>
479 <panel_attributes>lt=&lt;.</panel_attributes>
480 <additional_attributes>10.0;10.0;10.0;40.0</additional_attributes>
481 </element>
482 <element>
483 <id>Relation</id>
484 <coordinates>
485 <x>670</x>
486 <y>50</y>
487 <w>130</w>
488 <h>110</h>
489 </coordinates>
490 <panel_attributes>lt=&lt;.</panel_attributes>
491 <additional_attributes>10.0;10.0;110.0;90.0</additional_attributes>
492 </element>
493 <element>
494 <id>Relation</id>
495 <coordinates>
496 <x>360</x>
497 <y>50</y>
498 <w>130</w>
499 <h>110</h>
500 </coordinates>
501 <panel_attributes>lt=&lt;.</panel_attributes>
502 <additional_attributes>110.0;10.0;10.0;90.0</additional_attributes>
503 </element>
504 <element>
505 <id>UMLClass</id>
506 <coordinates>
507 <x>400</x>
508 <y>130</y>
509 <w>350</w>
510 <h>100</h>
511 </coordinates>
512 <panel_attributes>*ProfileBufferChunkManagerUpdate*
513 bg=light_gray
515 -unreleasedBytes
516 -releasedBytes
517 -oldestDoneTimeStamp
518 -newlyReleasedChunks: ProfileBufferChunkMetadata[ ]</panel_attributes>
519 <additional_attributes/>
520 </element>
521 <element>
522 <id>UMLClass</id>
523 <coordinates>
524 <x>310</x>
525 <y>780</y>
526 <w>440</w>
527 <h>70</h>
528 </coordinates>
529 <panel_attributes>*ProfileBufferControlledChunkManager*
531 */+SetUpdateCallback(function&lt;void(update: Update&amp;&amp;)&gt;)/*
532 */+DestroyChunksAtOrBefore(timeStamp)/*</panel_attributes>
533 <additional_attributes/>
534 </element>
535 <element>
536 <id>Relation</id>
537 <coordinates>
538 <x>480</x>
539 <y>840</y>
540 <w>30</w>
541 <h>80</h>
542 </coordinates>
543 <panel_attributes>lt=&lt;&lt;-</panel_attributes>
544 <additional_attributes>10.0;10.0;10.0;60.0</additional_attributes>
545 </element>
546 </diagram>