@yuneta/gobj-js 7.9.4 → 7.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gobj-js.cjs.js +293 -18
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +1267 -1093
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +283 -19
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +1245 -1063
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +293 -18
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +1268 -1094
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +293 -18
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +1266 -1092
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +1 -1
package/dist/gobj-js.es.js
CHANGED
|
@@ -383,7 +383,7 @@ var Event_Type = class {
|
|
|
383
383
|
}
|
|
384
384
|
};
|
|
385
385
|
function tab() {
|
|
386
|
-
return " ".repeat(Math.max(
|
|
386
|
+
return " ".repeat(Math.max(1, __inside__ * 2));
|
|
387
387
|
}
|
|
388
388
|
var __trace_machine_format__ = 0;
|
|
389
389
|
function gobj_set_trace_machine_format(format) {
|
|
@@ -399,6 +399,269 @@ function trace_machine(msg) {
|
|
|
399
399
|
if (is_object(msg)) msg = JSON.stringify(msg);
|
|
400
400
|
log_debug(tab() + String(msg));
|
|
401
401
|
}
|
|
402
|
+
/***************************************************************
|
|
403
|
+
* Trace levels
|
|
404
|
+
*
|
|
405
|
+
* The SAME names and the SAME bits as the C kernel (gobj.h's
|
|
406
|
+
* enum + gobj.c's s_global_trace_level), so a level means one
|
|
407
|
+
* thing across the two implementations and a habit learned on
|
|
408
|
+
* one side transfers to the other. The levels that only exist
|
|
409
|
+
* on a node (fs, liburing, gbuffers) keep their bit anyway:
|
|
410
|
+
* dropping them would shift every bit above and break exactly
|
|
411
|
+
* that alignment.
|
|
412
|
+
*
|
|
413
|
+
* 16 higher bits are global, 16 lower bits are per-gclass user
|
|
414
|
+
* levels (`s_user_trace_level` in gclass_create).
|
|
415
|
+
***************************************************************/
|
|
416
|
+
var trace_level_t = Object.freeze({
|
|
417
|
+
TRACE_MACHINE: 65536,
|
|
418
|
+
TRACE_CREATE_DELETE: 131072,
|
|
419
|
+
TRACE_CREATE_DELETE2: 262144,
|
|
420
|
+
TRACE_SUBSCRIPTIONS: 524288,
|
|
421
|
+
TRACE_START_STOP: 1048576,
|
|
422
|
+
TRACE_EV_KW: 2097152,
|
|
423
|
+
TRACE_AUTHZS: 4194304,
|
|
424
|
+
TRACE_STATES: 8388608,
|
|
425
|
+
TRACE_GBUFFERS: 16777216,
|
|
426
|
+
TRACE_TIMER: 33554432,
|
|
427
|
+
TRACE_FS: 67108864,
|
|
428
|
+
TRACE_URING: 134217728,
|
|
429
|
+
TRACE_TIMER_PERIODIC: 268435456,
|
|
430
|
+
TRACE_URING_TIME: 536870912,
|
|
431
|
+
TRACE_COMMANDS: 1073741824
|
|
432
|
+
});
|
|
433
|
+
var TRACE_GLOBAL_LEVEL1 = 268369920;
|
|
434
|
+
var s_global_trace_level = [
|
|
435
|
+
[
|
|
436
|
+
"machine",
|
|
437
|
+
trace_level_t.TRACE_MACHINE,
|
|
438
|
+
"Trace machine"
|
|
439
|
+
],
|
|
440
|
+
[
|
|
441
|
+
"create_delete",
|
|
442
|
+
trace_level_t.TRACE_CREATE_DELETE,
|
|
443
|
+
"Trace create/delete of gobjs"
|
|
444
|
+
],
|
|
445
|
+
[
|
|
446
|
+
"create_delete2",
|
|
447
|
+
trace_level_t.TRACE_CREATE_DELETE2,
|
|
448
|
+
"Trace create/delete of gobjs level 2: with kw"
|
|
449
|
+
],
|
|
450
|
+
[
|
|
451
|
+
"subscriptions",
|
|
452
|
+
trace_level_t.TRACE_SUBSCRIPTIONS,
|
|
453
|
+
"Trace subscriptions of gobjs"
|
|
454
|
+
],
|
|
455
|
+
[
|
|
456
|
+
"start_stop",
|
|
457
|
+
trace_level_t.TRACE_START_STOP,
|
|
458
|
+
"Trace start/stop of gobjs"
|
|
459
|
+
],
|
|
460
|
+
[
|
|
461
|
+
"ev_kw",
|
|
462
|
+
trace_level_t.TRACE_EV_KW,
|
|
463
|
+
"Trace event keywords"
|
|
464
|
+
],
|
|
465
|
+
[
|
|
466
|
+
"authzs",
|
|
467
|
+
trace_level_t.TRACE_AUTHZS,
|
|
468
|
+
"Trace authorizations"
|
|
469
|
+
],
|
|
470
|
+
[
|
|
471
|
+
"states",
|
|
472
|
+
trace_level_t.TRACE_STATES,
|
|
473
|
+
"Trace change of states"
|
|
474
|
+
],
|
|
475
|
+
[
|
|
476
|
+
"gbuffers",
|
|
477
|
+
trace_level_t.TRACE_GBUFFERS,
|
|
478
|
+
"Trace gbuffers"
|
|
479
|
+
],
|
|
480
|
+
[
|
|
481
|
+
"timer",
|
|
482
|
+
trace_level_t.TRACE_TIMER,
|
|
483
|
+
"Trace timers"
|
|
484
|
+
],
|
|
485
|
+
[
|
|
486
|
+
"fs",
|
|
487
|
+
trace_level_t.TRACE_FS,
|
|
488
|
+
"Trace file system"
|
|
489
|
+
],
|
|
490
|
+
[
|
|
491
|
+
"liburing",
|
|
492
|
+
trace_level_t.TRACE_URING,
|
|
493
|
+
"Trace liburing mixins"
|
|
494
|
+
],
|
|
495
|
+
[
|
|
496
|
+
"timer_periodic",
|
|
497
|
+
trace_level_t.TRACE_TIMER_PERIODIC,
|
|
498
|
+
"Trace periodic timers"
|
|
499
|
+
],
|
|
500
|
+
[
|
|
501
|
+
"liburing_timer",
|
|
502
|
+
trace_level_t.TRACE_URING_TIME,
|
|
503
|
+
"Trace liburing timer"
|
|
504
|
+
],
|
|
505
|
+
[
|
|
506
|
+
"commands",
|
|
507
|
+
trace_level_t.TRACE_COMMANDS,
|
|
508
|
+
"Trace commands"
|
|
509
|
+
]
|
|
510
|
+
];
|
|
511
|
+
var __global_trace_level__ = 0;
|
|
512
|
+
var __global_trace_no_level__ = 0;
|
|
513
|
+
var __deep_trace__ = 0;
|
|
514
|
+
function level2bit(level) {
|
|
515
|
+
for (const [name, bit] of s_global_trace_level) if (name === level) return bit;
|
|
516
|
+
return 0;
|
|
517
|
+
}
|
|
518
|
+
function trace_bitmask(level, who) {
|
|
519
|
+
if (empty_string(level)) return TRACE_GLOBAL_LEVEL1;
|
|
520
|
+
if (/^[0-9]+$/.test(String(level))) {
|
|
521
|
+
const n = Number(level);
|
|
522
|
+
if (n) return n;
|
|
523
|
+
}
|
|
524
|
+
const bit = level2bit(String(level));
|
|
525
|
+
if (!bit) {
|
|
526
|
+
log_error(`${who}: trace level NOT FOUND: ${level}`);
|
|
527
|
+
return 0;
|
|
528
|
+
}
|
|
529
|
+
return bit;
|
|
530
|
+
}
|
|
531
|
+
/************************************************************
|
|
532
|
+
* The levels in force for a gobj: global, plus its gclass's,
|
|
533
|
+
* plus its own — the union, exactly as the C kernel computes
|
|
534
|
+
* it in gobj_trace_level().
|
|
535
|
+
************************************************************/
|
|
536
|
+
function gobj_trace_level(gobj) {
|
|
537
|
+
if (__deep_trace__) return 4294967295;
|
|
538
|
+
let bitmask = __global_trace_level__;
|
|
539
|
+
if (gobj) {
|
|
540
|
+
bitmask |= gobj.trace_level || 0;
|
|
541
|
+
if (gobj.gclass) bitmask |= gobj.gclass.trace_level || 0;
|
|
542
|
+
}
|
|
543
|
+
return bitmask;
|
|
544
|
+
}
|
|
545
|
+
function gobj_trace_no_level(gobj) {
|
|
546
|
+
let bitmask = __global_trace_no_level__;
|
|
547
|
+
if (gobj) {
|
|
548
|
+
bitmask |= gobj.no_trace_level || 0;
|
|
549
|
+
if (gobj.gclass) bitmask |= gobj.gclass.no_trace_level || 0;
|
|
550
|
+
}
|
|
551
|
+
return bitmask;
|
|
552
|
+
}
|
|
553
|
+
function legacy_yuno_trace_bits() {
|
|
554
|
+
if (!__yuno__ || !__yuno__.jn_attrs) return 0;
|
|
555
|
+
let bits = 0;
|
|
556
|
+
if (gobj_has_attr(__yuno__, "tracing")) {
|
|
557
|
+
const tracing = Number(gobj_read_attr(__yuno__, "tracing")) || 0;
|
|
558
|
+
if (tracing >= 1) bits |= trace_level_t.TRACE_MACHINE;
|
|
559
|
+
if (tracing >= 2) bits |= trace_level_t.TRACE_EV_KW;
|
|
560
|
+
}
|
|
561
|
+
if (gobj_has_attr(__yuno__, "trace_timer") && gobj_read_attr(__yuno__, "trace_timer")) bits |= trace_level_t.TRACE_TIMER;
|
|
562
|
+
if (gobj_has_attr(__yuno__, "trace_creation") && gobj_read_attr(__yuno__, "trace_creation")) bits |= trace_level_t.TRACE_CREATE_DELETE;
|
|
563
|
+
if (gobj_has_attr(__yuno__, "trace_start_stop") && gobj_read_attr(__yuno__, "trace_start_stop")) bits |= trace_level_t.TRACE_START_STOP;
|
|
564
|
+
return bits;
|
|
565
|
+
}
|
|
566
|
+
function __trace_gobj_create_delete__(gobj) {
|
|
567
|
+
return (gobj_trace_level(gobj) | legacy_yuno_trace_bits()) & trace_level_t.TRACE_CREATE_DELETE;
|
|
568
|
+
}
|
|
569
|
+
function __trace_gobj_start_stop__(gobj) {
|
|
570
|
+
return (gobj_trace_level(gobj) | legacy_yuno_trace_bits()) & trace_level_t.TRACE_START_STOP;
|
|
571
|
+
}
|
|
572
|
+
function __trace_gobj_ev_kw__(gobj) {
|
|
573
|
+
return (gobj_trace_level(gobj) | legacy_yuno_trace_bits()) & trace_level_t.TRACE_EV_KW;
|
|
574
|
+
}
|
|
575
|
+
function __trace_gobj_states__(gobj) {
|
|
576
|
+
return gobj_trace_level(gobj) & trace_level_t.TRACE_STATES;
|
|
577
|
+
}
|
|
578
|
+
/************************************************************
|
|
579
|
+
* Must trace? — the C kernel's is_machine_tracing(), including
|
|
580
|
+
* the two event-specific levels: `timer` and `timer_periodic`
|
|
581
|
+
* light up only for their own event.
|
|
582
|
+
************************************************************/
|
|
583
|
+
function is_machine_tracing(gobj, event) {
|
|
584
|
+
if (__deep_trace__ > 1) return true;
|
|
585
|
+
if (!gobj) return false;
|
|
586
|
+
const level = gobj_trace_level(gobj) | legacy_yuno_trace_bits();
|
|
587
|
+
return level & trace_level_t.TRACE_MACHINE || level & trace_level_t.TRACE_TIMER_PERIODIC && event === "EV_TIMEOUT_PERIODIC" || level & trace_level_t.TRACE_TIMER && event === "EV_TIMEOUT" ? true : false;
|
|
588
|
+
}
|
|
589
|
+
/************************************************************
|
|
590
|
+
* Must NOT trace? Asked of the SOURCE, so a noisy sender can
|
|
591
|
+
* be silenced without turning the destination off.
|
|
592
|
+
************************************************************/
|
|
593
|
+
function is_machine_not_tracing(gobj, event) {
|
|
594
|
+
if (__deep_trace__ > 1) return false;
|
|
595
|
+
if (!gobj) return true;
|
|
596
|
+
const level = gobj_trace_no_level(gobj);
|
|
597
|
+
return level & trace_level_t.TRACE_MACHINE || level & trace_level_t.TRACE_TIMER_PERIODIC && event === "EV_TIMEOUT_PERIODIC" || level & trace_level_t.TRACE_TIMER && event === "EV_TIMEOUT" ? true : false;
|
|
598
|
+
}
|
|
599
|
+
/************************************************************
|
|
600
|
+
* The setters — same signatures as the C kernel
|
|
601
|
+
************************************************************/
|
|
602
|
+
function gobj_set_global_trace(level, set) {
|
|
603
|
+
const bitmask = trace_bitmask(level, "gobj_set_global_trace");
|
|
604
|
+
if (!bitmask) return -1;
|
|
605
|
+
if (set) __global_trace_level__ |= bitmask;
|
|
606
|
+
else __global_trace_level__ &= ~bitmask;
|
|
607
|
+
return 0;
|
|
608
|
+
}
|
|
609
|
+
function gobj_set_global_no_trace(level, set) {
|
|
610
|
+
const bitmask = trace_bitmask(level, "gobj_set_global_no_trace");
|
|
611
|
+
if (!bitmask) return -1;
|
|
612
|
+
if (set) __global_trace_no_level__ |= bitmask;
|
|
613
|
+
else __global_trace_no_level__ &= ~bitmask;
|
|
614
|
+
return 0;
|
|
615
|
+
}
|
|
616
|
+
function gobj_global_trace_level() {
|
|
617
|
+
return __global_trace_level__;
|
|
618
|
+
}
|
|
619
|
+
function gobj_set_deep_trace(value) {
|
|
620
|
+
__deep_trace__ = Number(value) || 0;
|
|
621
|
+
return 0;
|
|
622
|
+
}
|
|
623
|
+
function gobj_set_gclass_trace(gclass, level, set) {
|
|
624
|
+
const gclass_ = is_string(gclass) ? gclass_find_by_name(gclass) : gclass;
|
|
625
|
+
if (!gclass_) {
|
|
626
|
+
log_error(`gobj_set_gclass_trace: gclass NOT FOUND: ${gclass}`);
|
|
627
|
+
return -1;
|
|
628
|
+
}
|
|
629
|
+
const bitmask = trace_bitmask(level, "gobj_set_gclass_trace");
|
|
630
|
+
if (!bitmask) return -1;
|
|
631
|
+
if (set) gclass_.trace_level |= bitmask;
|
|
632
|
+
else gclass_.trace_level &= ~bitmask;
|
|
633
|
+
return 0;
|
|
634
|
+
}
|
|
635
|
+
function gobj_set_gobj_trace(gobj, level, set) {
|
|
636
|
+
if (!gobj) {
|
|
637
|
+
log_error(`gobj_set_gobj_trace: gobj NULL`);
|
|
638
|
+
return -1;
|
|
639
|
+
}
|
|
640
|
+
const bitmask = trace_bitmask(level, "gobj_set_gobj_trace");
|
|
641
|
+
if (!bitmask) return -1;
|
|
642
|
+
if (set) gobj.trace_level |= bitmask;
|
|
643
|
+
else gobj.trace_level &= ~bitmask;
|
|
644
|
+
return 0;
|
|
645
|
+
}
|
|
646
|
+
function gobj_set_gobj_no_trace(gobj, level, set) {
|
|
647
|
+
if (!gobj) {
|
|
648
|
+
log_error(`gobj_set_gobj_no_trace: gobj NULL`);
|
|
649
|
+
return -1;
|
|
650
|
+
}
|
|
651
|
+
const bitmask = trace_bitmask(level, "gobj_set_gobj_no_trace");
|
|
652
|
+
if (!bitmask) return -1;
|
|
653
|
+
if (set) gobj.no_trace_level |= bitmask;
|
|
654
|
+
else gobj.no_trace_level &= ~bitmask;
|
|
655
|
+
return 0;
|
|
656
|
+
}
|
|
657
|
+
function gobj_repr_global_trace_levels() {
|
|
658
|
+
return s_global_trace_level.map(([name, bit, description]) => ({
|
|
659
|
+
name,
|
|
660
|
+
bit,
|
|
661
|
+
description,
|
|
662
|
+
set: __global_trace_level__ & bit ? true : false
|
|
663
|
+
}));
|
|
664
|
+
}
|
|
402
665
|
/************************************************************
|
|
403
666
|
* Start up
|
|
404
667
|
************************************************************/
|
|
@@ -1079,7 +1342,7 @@ function gobj_create2(gobj_name, gclass_name, kw, parent, gobj_flag) {
|
|
|
1079
1342
|
let gobj = new GObj(gobj_name, gclass, kw, parent, gobj_flag);
|
|
1080
1343
|
gobj.jn_attrs = sdata_create(gobj, gclass.attrs_table);
|
|
1081
1344
|
for (const [key, value] of Object.entries(gobj.jn_attrs)) if (key in gobj.priv) gobj.priv[key] = value;
|
|
1082
|
-
let trace_creation =
|
|
1345
|
+
let trace_creation = __trace_gobj_create_delete__(gobj);
|
|
1083
1346
|
if (trace_creation) trace_machine(sprintf("💙💙⏩ creating: %s^%s", gclass.gclass_name, gobj_name));
|
|
1084
1347
|
if (gobj.gobj_flag & gobj_flag_t.gobj_flag_service) _register_service(gobj);
|
|
1085
1348
|
if (gobj.gobj_flag & gobj_flag_t.gobj_flag_yuno) __yuno__ = gobj;
|
|
@@ -1139,7 +1402,7 @@ function gobj_destroy(gobj) {
|
|
|
1139
1402
|
gobj_stop(gobj);
|
|
1140
1403
|
}
|
|
1141
1404
|
gobj.obflag |= obflag_t.obflag_destroying;
|
|
1142
|
-
let trace_creation =
|
|
1405
|
+
let trace_creation = __trace_gobj_create_delete__(gobj);
|
|
1143
1406
|
if (trace_creation) trace_machine(sprintf("💔💔⏩ destroying: %s", gobj_full_name(gobj)));
|
|
1144
1407
|
let parent = gobj_parent(gobj);
|
|
1145
1408
|
if (parent && parent.gclass.gmt.mt_child_removed) {
|
|
@@ -1189,7 +1452,7 @@ function gobj_start(gobj) {
|
|
|
1189
1452
|
log_error(`${gobj_short_name(gobj)}: GObj DISABLED`);
|
|
1190
1453
|
return -1;
|
|
1191
1454
|
}
|
|
1192
|
-
if (
|
|
1455
|
+
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏺ ⏺ start: %s", gobj_full_name(gobj)));
|
|
1193
1456
|
gobj.running = true;
|
|
1194
1457
|
let ret = 0;
|
|
1195
1458
|
if (gobj.gclass.gmt.mt_start) ret = gobj.gclass.gmt.mt_start(gobj);
|
|
@@ -1224,7 +1487,7 @@ function gobj_start_tree(gobj) {
|
|
|
1224
1487
|
log_error("gobj NULL or DESTROYED");
|
|
1225
1488
|
return -1;
|
|
1226
1489
|
}
|
|
1227
|
-
if (
|
|
1490
|
+
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏺ ⏺ ⏺ ⏺ start_tree: %s", gobj_full_name(gobj)));
|
|
1228
1491
|
if (gobj.gclass.gclass_flag & gclass_flag_t.gcflag_manual_start) return 0;
|
|
1229
1492
|
else if (gobj.disabled) return 0;
|
|
1230
1493
|
else if (!gobj.running) gobj_start(gobj);
|
|
@@ -1246,7 +1509,7 @@ function gobj_stop(gobj) {
|
|
|
1246
1509
|
log_warning(`${gobj_short_name(gobj)}: GObj stopping without previous pause`);
|
|
1247
1510
|
gobj_pause(gobj);
|
|
1248
1511
|
}
|
|
1249
|
-
if (
|
|
1512
|
+
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏹ ⏹ stop: %s", gobj_full_name(gobj)));
|
|
1250
1513
|
gobj.running = false;
|
|
1251
1514
|
let ret = 0;
|
|
1252
1515
|
if (gobj.gclass.gmt.mt_stop) ret = gobj.gclass.gmt.mt_stop(gobj);
|
|
@@ -1274,7 +1537,7 @@ function gobj_stop_tree(gobj) {
|
|
|
1274
1537
|
log_error("gobj NULL or DESTROYED");
|
|
1275
1538
|
return -1;
|
|
1276
1539
|
}
|
|
1277
|
-
if (
|
|
1540
|
+
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏹ ⏹ ⏹ ⏹ stop_tree: %s", gobj_full_name(gobj)));
|
|
1278
1541
|
if (gobj_is_running(gobj)) gobj_stop(gobj);
|
|
1279
1542
|
return gobj_walk_gobj_children_tree(gobj, walk_type_t.WALK_TOP2BOTTOM, cb_stop_child, 0, 0);
|
|
1280
1543
|
}
|
|
@@ -1301,7 +1564,7 @@ function gobj_play(gobj) {
|
|
|
1301
1564
|
log_error(`${gobj_short_name(gobj)}: Cannot play, start not done`);
|
|
1302
1565
|
return -1;
|
|
1303
1566
|
}
|
|
1304
|
-
if (
|
|
1567
|
+
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏯ ⏯ play: %s", gobj_full_name(gobj)));
|
|
1305
1568
|
gobj.playing = true;
|
|
1306
1569
|
let ret = 0;
|
|
1307
1570
|
if (gobj.gclass.gmt.mt_play) {
|
|
@@ -1322,7 +1585,7 @@ function gobj_pause(gobj) {
|
|
|
1322
1585
|
log_error(`${gobj_short_name(gobj)}: GObj NOT PLAYING`);
|
|
1323
1586
|
return -1;
|
|
1324
1587
|
}
|
|
1325
|
-
if (
|
|
1588
|
+
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏸ ⏸ pause: %s", gobj_full_name(gobj)));
|
|
1326
1589
|
gobj.playing = false;
|
|
1327
1590
|
if (gobj.gclass.gmt.mt_pause) return gobj.gclass.gmt.mt_pause(gobj);
|
|
1328
1591
|
else return 0;
|
|
@@ -1999,6 +2262,9 @@ function gobj_change_state(gobj, state_name) {
|
|
|
1999
2262
|
}
|
|
2000
2263
|
gobj.last_state = gobj.current_state;
|
|
2001
2264
|
gobj.current_state = new_state;
|
|
2265
|
+
let tracea = is_machine_tracing(gobj, "EV_STATE_CHANGED");
|
|
2266
|
+
let tracea_states = __trace_gobj_states__(gobj) ? true : false;
|
|
2267
|
+
if (tracea || tracea_states) trace_machine(sprintf("🔀🔀 mach(%s%s^%s), new st(%s), prev st(%s)", !gobj.running ? "!!" : "", gobj_gclass_name(gobj), gobj_name(gobj), gobj_current_state(gobj), gobj.last_state.state_name));
|
|
2002
2268
|
return true;
|
|
2003
2269
|
}
|
|
2004
2270
|
/***************************************************************************
|
|
@@ -2030,7 +2296,7 @@ function gobj_change_parent(gobj, parent) {
|
|
|
2030
2296
|
}
|
|
2031
2297
|
_add_child(parent, gobj);
|
|
2032
2298
|
if (parent.mt_child_added) {
|
|
2033
|
-
if (
|
|
2299
|
+
if (__trace_gobj_create_delete__(gobj)) log_debug(sprintf("👦👦🔵 child_added(%s): %s", gobj_full_name(parent), gobj_short_name(gobj)));
|
|
2034
2300
|
parent.mt_child_added(parent, gobj);
|
|
2035
2301
|
}
|
|
2036
2302
|
return 0;
|
|
@@ -2100,9 +2366,7 @@ function gobj_send_event(dst, event, kw, src) {
|
|
|
2100
2366
|
log_error(`${gobj_short_name(dst)}: current_state NULL`);
|
|
2101
2367
|
return -1;
|
|
2102
2368
|
}
|
|
2103
|
-
let tracea =
|
|
2104
|
-
tracea = __yuno__ && gobj_read_integer_attr(__yuno__, "tracing");
|
|
2105
|
-
if (gobj_gclass_name(src) === "C_TIMER") tracea = __yuno__ && gobj_read_integer_attr(__yuno__, "trace_timer");
|
|
2369
|
+
let tracea = is_machine_tracing(dst, event) && !is_machine_not_tracing(src, event);
|
|
2106
2370
|
__inside__++;
|
|
2107
2371
|
let event_action = _find_event_action(state, event);
|
|
2108
2372
|
if (!event_action) {
|
|
@@ -2131,7 +2395,7 @@ function gobj_send_event(dst, event, kw, src) {
|
|
|
2131
2395
|
trace_machine(sprintf("🔄 mach(%s%s^%s), st: %s, ev: %s%s%s, ac: %s, from(%s%s^%s)", !dst.running ? "!!" : "", gobj_gclass_name(dst), gobj_name(dst), state.state_name, "", event ? event : "", "", action_name, src && !src.running ? "!!" : "", gobj_gclass_name(src), gobj_name(src)));
|
|
2132
2396
|
}
|
|
2133
2397
|
if (kw) {
|
|
2134
|
-
if (
|
|
2398
|
+
if (__trace_gobj_ev_kw__(dst)) {
|
|
2135
2399
|
if (json_object_size(kw)) trace_json(kw);
|
|
2136
2400
|
}
|
|
2137
2401
|
}
|
|
@@ -2678,10 +2942,10 @@ function format_log(format) {
|
|
|
2678
2942
|
function log_error(format) {
|
|
2679
2943
|
let msg = format_log(format);
|
|
2680
2944
|
let hora = current_timestamp();
|
|
2681
|
-
if (f_error) if (f_error ===
|
|
2945
|
+
if (f_error) if (f_error === _console.error) {
|
|
2682
2946
|
if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
|
|
2683
2947
|
} else {
|
|
2684
|
-
if (__console_output_enabled__)
|
|
2948
|
+
if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
|
|
2685
2949
|
f_error(`${hora} ERROR: ${String(msg)}`);
|
|
2686
2950
|
}
|
|
2687
2951
|
emit_log_callback("error", msg, hora);
|
|
@@ -2689,10 +2953,10 @@ function log_error(format) {
|
|
|
2689
2953
|
function log_warning(format) {
|
|
2690
2954
|
let msg = format_log(format);
|
|
2691
2955
|
let hora = current_timestamp();
|
|
2692
|
-
if (f_warning) if (f_warning ===
|
|
2956
|
+
if (f_warning) if (f_warning === _console.warn) {
|
|
2693
2957
|
if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
|
|
2694
2958
|
} else {
|
|
2695
|
-
if (__console_output_enabled__)
|
|
2959
|
+
if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
|
|
2696
2960
|
f_warning(`${hora} WARNING: ${String(msg)}`);
|
|
2697
2961
|
}
|
|
2698
2962
|
emit_log_callback("warning", msg, hora);
|
|
@@ -6219,6 +6483,6 @@ function register_c_ievent_cli() {
|
|
|
6219
6483
|
return create_gclass(GCLASS_NAME);
|
|
6220
6484
|
}
|
|
6221
6485
|
//#endregion
|
|
6222
|
-
export { GObj, SDATA, SDATAAUTHZ, SDATACM, SDATACM2, SDATADF, SDATAPM, SDATAPM0, SDATA_END, SDataDesc, YUNETA_VERSION, __yuno__, build_command_response, build_path, build_stats_response, clean_name, clear_timeout, cmp_two_simple_json, command_parser, createElement2, createOneHtml, create_json_record, create_template_record, current_timestamp, data_type_t, db_list_persistent_attrs, db_load_persistent_attrs, db_remove_persistent_attrs, db_save_persistent_attrs, debounce, delete_from_list, duplicate_objects, empty_string, escapeHtml, event_flag_t, gclass_add_ev_action, gclass_add_event_type, gclass_add_state, gclass_check_fsm, gclass_create, gclass_event_type, gclass_find_by_name, gclass_flag_t, gclass_unregister, getPositionRelativeToBody, get_function_name, get_now, gobj_bottom_gobj, gobj_change_parent, gobj_change_state, gobj_command, gobj_create, gobj_create2, gobj_create_default_service, gobj_create_pure_child, gobj_create_service, gobj_create_volatil, gobj_create_yuno, gobj_current_state, gobj_default_service, gobj_destroy, gobj_find_child, gobj_find_gobj, gobj_find_service, gobj_find_subscribings, gobj_find_subscriptions, gobj_flag_t, gobj_full_name, gobj_gclass_name, gobj_has_attr, gobj_has_event, gobj_has_output_event, gobj_hsdata, gobj_is_destroying, gobj_is_playing, gobj_is_pure_child, gobj_is_running, gobj_is_service, gobj_is_volatil, gobj_list_persistent_attrs, gobj_list_subscriptions, gobj_load_persistent_attrs, gobj_match_children, gobj_match_children_tree, gobj_match_gobj, gobj_name, gobj_parent, gobj_pause, gobj_play, gobj_post_event, gobj_publish_event, gobj_read_attr, gobj_read_attrs, gobj_read_bool_attr, gobj_read_integer_attr, gobj_read_pointer_attr, gobj_read_str_attr, gobj_remove_persistent_attrs, gobj_reset_volatil_attrs, gobj_save_persistent_attrs, gobj_search_path, gobj_send_event, gobj_services, gobj_set_bottom_gobj, gobj_set_trace_machine_format, gobj_short_name, gobj_start, gobj_start_children, gobj_start_tree, gobj_start_up, gobj_stats, gobj_stop, gobj_stop_children, gobj_stop_tree, gobj_subscribe_event, gobj_trace_machine_format, gobj_unsubscribe_event, gobj_unsubscribe_list, gobj_walk_gobj_children, gobj_walk_gobj_children_tree, gobj_write_attr, gobj_write_attrs, gobj_write_bool_attr, gobj_write_integer_attr, gobj_write_str_attr, gobj_yuno, gobj_yuno_id, gobj_yuno_name, gobj_yuno_role, id_index_in_obj_list, index_in_list, is_array, is_boolean, is_date, is_function, is_gobj, is_metadata_key, is_null, is_number, is_object, is_private_key, is_pure_number, is_string, jdb_delete, jdb_get, jdb_get_by_idx, jdb_get_topic, jdb_init, jdb_update, json_array_append, json_array_append_new, json_array_extend, json_array_remove, json_array_size, json_deep_copy, json_is_identical, json_object_del, json_object_get, json_object_set, json_object_set_new, json_object_size, json_object_update, json_object_update_existing, json_object_update_missing, json_size, jwt2json, jwtDecode, kw_clone_by_keys, kw_clone_by_not_keys, kw_collect, kw_delete, kw_find_json_in_list, kw_find_path, kw_flag_t, kw_get_bool, kw_get_dict, kw_get_dict_value, kw_get_int, kw_get_list, kw_get_local_storage_value, kw_get_pointer, kw_get_real, kw_get_str, kw_has_key, kw_match_simple, kw_pop, kw_remove_local_storage_value, kw_select, kw_set_dict_value, kw_set_local_storage_value, kw_set_subdict_value, kwid_collect, kwid_find_one_record, kwid_get_ids, kwid_match_id, kwid_new_dict, list2options, load_json_file, log_debug, log_error, log_info, log_warning, msg_iev_get_msg_type, msg_iev_get_stack, msg_iev_push_stack, msg_iev_read_key, msg_iev_set_msg_type, msg_iev_write_key, node_uuid, parseBoolean, parseSVG, refresh_language, register_c_ievent_cli, register_c_timer, register_c_yuno, safeSrc, sdata_flag_t, send_http_json_post, set_console_log_enabled, set_log_callback, set_remote_log_functions, set_timeout, set_timeout_periodic, sprintf, stats_parser, str_in_list, strcasecmp, strcmp, strncmp, strs_in_list, strstr, template_get_field_desc, timeTracker, trace_json, trace_msg, treedb_decoder_fkey, treedb_decoder_hook, treedb_encoder_fkey, treedb_get_field_desc, treedb_hook_data_size, vsprintf };
|
|
6486
|
+
export { GObj, SDATA, SDATAAUTHZ, SDATACM, SDATACM2, SDATADF, SDATAPM, SDATAPM0, SDATA_END, SDataDesc, YUNETA_VERSION, __yuno__, build_command_response, build_path, build_stats_response, clean_name, clear_timeout, cmp_two_simple_json, command_parser, createElement2, createOneHtml, create_json_record, create_template_record, current_timestamp, data_type_t, db_list_persistent_attrs, db_load_persistent_attrs, db_remove_persistent_attrs, db_save_persistent_attrs, debounce, delete_from_list, duplicate_objects, empty_string, escapeHtml, event_flag_t, gclass_add_ev_action, gclass_add_event_type, gclass_add_state, gclass_check_fsm, gclass_create, gclass_event_type, gclass_find_by_name, gclass_flag_t, gclass_unregister, getPositionRelativeToBody, get_function_name, get_now, gobj_bottom_gobj, gobj_change_parent, gobj_change_state, gobj_command, gobj_create, gobj_create2, gobj_create_default_service, gobj_create_pure_child, gobj_create_service, gobj_create_volatil, gobj_create_yuno, gobj_current_state, gobj_default_service, gobj_destroy, gobj_find_child, gobj_find_gobj, gobj_find_service, gobj_find_subscribings, gobj_find_subscriptions, gobj_flag_t, gobj_full_name, gobj_gclass_name, gobj_global_trace_level, gobj_has_attr, gobj_has_event, gobj_has_output_event, gobj_hsdata, gobj_is_destroying, gobj_is_playing, gobj_is_pure_child, gobj_is_running, gobj_is_service, gobj_is_volatil, gobj_list_persistent_attrs, gobj_list_subscriptions, gobj_load_persistent_attrs, gobj_match_children, gobj_match_children_tree, gobj_match_gobj, gobj_name, gobj_parent, gobj_pause, gobj_play, gobj_post_event, gobj_publish_event, gobj_read_attr, gobj_read_attrs, gobj_read_bool_attr, gobj_read_integer_attr, gobj_read_pointer_attr, gobj_read_str_attr, gobj_remove_persistent_attrs, gobj_repr_global_trace_levels, gobj_reset_volatil_attrs, gobj_save_persistent_attrs, gobj_search_path, gobj_send_event, gobj_services, gobj_set_bottom_gobj, gobj_set_deep_trace, gobj_set_gclass_trace, gobj_set_global_no_trace, gobj_set_global_trace, gobj_set_gobj_no_trace, gobj_set_gobj_trace, gobj_set_trace_machine_format, gobj_short_name, gobj_start, gobj_start_children, gobj_start_tree, gobj_start_up, gobj_stats, gobj_stop, gobj_stop_children, gobj_stop_tree, gobj_subscribe_event, gobj_trace_level, gobj_trace_machine_format, gobj_trace_no_level, gobj_unsubscribe_event, gobj_unsubscribe_list, gobj_walk_gobj_children, gobj_walk_gobj_children_tree, gobj_write_attr, gobj_write_attrs, gobj_write_bool_attr, gobj_write_integer_attr, gobj_write_str_attr, gobj_yuno, gobj_yuno_id, gobj_yuno_name, gobj_yuno_role, id_index_in_obj_list, index_in_list, is_array, is_boolean, is_date, is_function, is_gobj, is_metadata_key, is_null, is_number, is_object, is_private_key, is_pure_number, is_string, jdb_delete, jdb_get, jdb_get_by_idx, jdb_get_topic, jdb_init, jdb_update, json_array_append, json_array_append_new, json_array_extend, json_array_remove, json_array_size, json_deep_copy, json_is_identical, json_object_del, json_object_get, json_object_set, json_object_set_new, json_object_size, json_object_update, json_object_update_existing, json_object_update_missing, json_size, jwt2json, jwtDecode, kw_clone_by_keys, kw_clone_by_not_keys, kw_collect, kw_delete, kw_find_json_in_list, kw_find_path, kw_flag_t, kw_get_bool, kw_get_dict, kw_get_dict_value, kw_get_int, kw_get_list, kw_get_local_storage_value, kw_get_pointer, kw_get_real, kw_get_str, kw_has_key, kw_match_simple, kw_pop, kw_remove_local_storage_value, kw_select, kw_set_dict_value, kw_set_local_storage_value, kw_set_subdict_value, kwid_collect, kwid_find_one_record, kwid_get_ids, kwid_match_id, kwid_new_dict, list2options, load_json_file, log_debug, log_error, log_info, log_warning, msg_iev_get_msg_type, msg_iev_get_stack, msg_iev_push_stack, msg_iev_read_key, msg_iev_set_msg_type, msg_iev_write_key, node_uuid, parseBoolean, parseSVG, refresh_language, register_c_ievent_cli, register_c_timer, register_c_yuno, safeSrc, sdata_flag_t, send_http_json_post, set_console_log_enabled, set_log_callback, set_remote_log_functions, set_timeout, set_timeout_periodic, sprintf, stats_parser, str_in_list, strcasecmp, strcmp, strncmp, strs_in_list, strstr, template_get_field_desc, timeTracker, trace_json, trace_level_t, trace_msg, treedb_decoder_fkey, treedb_decoder_hook, treedb_encoder_fkey, treedb_get_field_desc, treedb_hook_data_size, vsprintf };
|
|
6223
6487
|
|
|
6224
6488
|
//# sourceMappingURL=gobj-js.es.js.map
|