]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/3rdparty/civetweb/src/third_party/duktape-1.8.0/examples/eventloop/curses-timers.js
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / third_party / prometheus-cpp / 3rdparty / civetweb / src / third_party / duktape-1.8.0 / examples / eventloop / curses-timers.js
1 /*
2 * Test using timers and intervals with curses.
3 */
4
5 if (typeof Ncurses !== 'object') {
6 throw new Error('Ncurses required');
7 }
8
9 function fillScreen(ch) {
10 var size, w, h;
11 var i, j;
12
13 size = Ncurses.getmaxyx();
14 h = size[0];
15 w = size[1];
16
17 for (i = 0; i < h; i++) {
18 for (j = 0; j < w; j++) {
19 Ncurses.mvprintw(i, j, ch);
20 }
21 }
22 Ncurses.refresh();
23 }
24
25 function main() {
26 var i, j;
27 var counters = [];
28 var size, w, h;
29
30 Ncurses.initscr();
31 size = Ncurses.getmaxyx();
32 h = size[0];
33 w = size[1];
34
35 fillScreen('.');
36
37 setInterval(function () {
38 Ncurses.mvprintw(1, 4, new Date().toISOString());
39 Ncurses.refresh();
40 }, 1000);
41
42 function addCounter(row, index, interval) {
43 counters[index] = 0;
44 setInterval(function () {
45 counters[index]++;
46 Ncurses.mvprintw(row, 4, '' + Date.now() + ' ' + counters[index]);
47 Ncurses.refresh();
48 }, interval);
49 }
50
51 function addRandomChar(row, col, interval) {
52 setTimeout(function () {
53 Ncurses.mvprintw(row, col, String.fromCharCode(Math.random() * 64 + 0x20));
54 Ncurses.refresh();
55 }, interval);
56 }
57
58 for (i = 0; i < h - 5; i++) {
59 addCounter(3 + i, i, 363 * i + 400);
60 }
61
62 /* Here the inserts take a lot of time because the underlying timer manager
63 * data structure has O(n) insertion performance.
64 */
65 for (i = 0; i < h - 5; i++) {
66 for (j = 0; j < w - 50; j++) {
67 // Math.exp(0)...Math.exp(8) is an uneven distribution between 1...~2980.
68 addRandomChar(3 + i, 28 + j, 58000 - Math.exp(Math.random() * 8) * 20);
69 }
70 }
71
72 setTimeout(function () {
73 Ncurses.endwin();
74 Ncurses.delscreen();
75 requestEventLoopExit();
76 }, 120e3);
77 }
78
79 main();