@yuneta/gobj-js 7.10.0 → 7.13.2
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 +139 -135
- package/dist/gobj-js.cjs.js.map +1 -1
- package/dist/gobj-js.cjs.min.js +16 -10
- package/dist/gobj-js.cjs.min.js.map +1 -1
- package/dist/gobj-js.es.js +139 -135
- package/dist/gobj-js.es.js.map +1 -1
- package/dist/gobj-js.es.min.js +16 -10
- package/dist/gobj-js.es.min.js.map +1 -1
- package/dist/gobj-js.iife.js +139 -135
- package/dist/gobj-js.iife.js.map +1 -1
- package/dist/gobj-js.iife.min.js +16 -10
- package/dist/gobj-js.iife.min.js.map +1 -1
- package/dist/gobj-js.umd.js +139 -135
- package/dist/gobj-js.umd.js.map +1 -1
- package/dist/gobj-js.umd.min.js +16 -10
- package/dist/gobj-js.umd.min.js.map +1 -1
- package/package.json +4 -4
package/dist/gobj-js.es.js
CHANGED
|
@@ -86,9 +86,7 @@ function sprintf_format(parse_tree, argv) {
|
|
|
86
86
|
case "x":
|
|
87
87
|
arg = (parseInt(arg, 10) >>> 0).toString(16);
|
|
88
88
|
break;
|
|
89
|
-
case "X":
|
|
90
|
-
arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
|
|
91
|
-
break;
|
|
89
|
+
case "X": arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
|
|
92
90
|
}
|
|
93
91
|
if (re.json.test(ph.type)) output += arg;
|
|
94
92
|
else {
|
|
@@ -776,9 +774,7 @@ function set_default(gobj, sdata, it) {
|
|
|
776
774
|
}
|
|
777
775
|
else jn_value = svalue;
|
|
778
776
|
break;
|
|
779
|
-
case data_type_t.DTP_POINTER:
|
|
780
|
-
jn_value = svalue;
|
|
781
|
-
break;
|
|
777
|
+
case data_type_t.DTP_POINTER: jn_value = svalue;
|
|
782
778
|
}
|
|
783
779
|
if (jn_value === void 0) {
|
|
784
780
|
log_error(`default_value WRONG, it: ${it.name}, value: ${it.default_value}`);
|
|
@@ -848,9 +844,7 @@ function json2item(gobj, sdata, it, jn_value_) {
|
|
|
848
844
|
return -1;
|
|
849
845
|
}
|
|
850
846
|
break;
|
|
851
|
-
case data_type_t.DTP_POINTER:
|
|
852
|
-
jn_value2 = jn_value_;
|
|
853
|
-
break;
|
|
847
|
+
case data_type_t.DTP_POINTER: jn_value2 = jn_value_;
|
|
854
848
|
}
|
|
855
849
|
if (jn_value2 === void 0) log_error(`${gobj_short_name(gobj)}: attr undefined: ${it.name}`);
|
|
856
850
|
sdata[it.name] = jn_value2;
|
|
@@ -1129,6 +1123,7 @@ function gclass_find_by_name(gclass_name, verbose) {
|
|
|
1129
1123
|
} catch (e) {}
|
|
1130
1124
|
if (!gclass) {
|
|
1131
1125
|
if (verbose) log_error(`gclass not found: ${gclass_name}`);
|
|
1126
|
+
return null;
|
|
1132
1127
|
}
|
|
1133
1128
|
return gclass;
|
|
1134
1129
|
}
|
|
@@ -1153,8 +1148,8 @@ function gobj_default_service() {
|
|
|
1153
1148
|
function gobj_find_service(service_name, verbose) {
|
|
1154
1149
|
service_name = service_name.toLowerCase();
|
|
1155
1150
|
let service_gobj = __jn_services__[service_name];
|
|
1156
|
-
if (!service_gobj
|
|
1157
|
-
log_error(`gobj service not found: ${service_name}`);
|
|
1151
|
+
if (!service_gobj) {
|
|
1152
|
+
if (verbose) log_error(`gobj service not found: ${service_name}`);
|
|
1158
1153
|
return null;
|
|
1159
1154
|
}
|
|
1160
1155
|
return service_gobj;
|
|
@@ -1570,12 +1565,14 @@ function gobj_play(gobj) {
|
|
|
1570
1565
|
log_error(`${gobj_short_name(gobj)}: GObj DISABLED`);
|
|
1571
1566
|
return -1;
|
|
1572
1567
|
}
|
|
1573
|
-
if (!gobj_is_running(gobj))
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1568
|
+
if (!gobj_is_running(gobj)) {
|
|
1569
|
+
if (!(gobj.gclass.gclass_flag & gclass_flag_t.gcflag_required_start_to_play)) {
|
|
1570
|
+
log_warning(`${gobj_short_name(gobj)}: GObj playing without previous start`);
|
|
1571
|
+
gobj_start(gobj);
|
|
1572
|
+
} else {
|
|
1573
|
+
log_error(`${gobj_short_name(gobj)}: Cannot play, start not done`);
|
|
1574
|
+
return -1;
|
|
1575
|
+
}
|
|
1579
1576
|
}
|
|
1580
1577
|
if (__trace_gobj_start_stop__(gobj)) trace_machine(sprintf("⏯ ⏯ play: %s", gobj_full_name(gobj)));
|
|
1581
1578
|
gobj.playing = true;
|
|
@@ -2680,7 +2677,7 @@ function gobj_subscribe_event(publisher, event, kw, subscriber) {
|
|
|
2680
2677
|
log_error(`subscriber NULL: ev ${event}`);
|
|
2681
2678
|
return 0;
|
|
2682
2679
|
}
|
|
2683
|
-
const IGNORED_KEYS = new Set([
|
|
2680
|
+
const IGNORED_KEYS = /* @__PURE__ */ new Set([
|
|
2684
2681
|
"__config__",
|
|
2685
2682
|
"__global__",
|
|
2686
2683
|
"__local__",
|
|
@@ -2736,7 +2733,7 @@ function gobj_unsubscribe_event(publisher, event, kw, subscriber) {
|
|
|
2736
2733
|
log_error(`subscriber NULL: ev ${event}`);
|
|
2737
2734
|
return 0;
|
|
2738
2735
|
}
|
|
2739
|
-
const IGNORED_KEYS = new Set([
|
|
2736
|
+
const IGNORED_KEYS = /* @__PURE__ */ new Set([
|
|
2740
2737
|
"__config__",
|
|
2741
2738
|
"__global__",
|
|
2742
2739
|
"__local__",
|
|
@@ -2930,9 +2927,10 @@ function gobj_command(gobj, command, kw, src) {
|
|
|
2930
2927
|
if (tracea > 1) trace_json(kw);
|
|
2931
2928
|
}
|
|
2932
2929
|
if (gobj.gclass.gmt.mt_command_parser) return gobj.gclass.gmt.mt_command_parser(gobj, command, kw, src);
|
|
2933
|
-
if (gobj.gclass.command_table)
|
|
2934
|
-
|
|
2935
|
-
|
|
2930
|
+
if (gobj.gclass.command_table) {
|
|
2931
|
+
if (__global_command_parser_fn__) return __global_command_parser_fn__(gobj, command, kw, src);
|
|
2932
|
+
else return build_command_response(gobj, -1, sprintf("%s: global command parser not available", gobj_short_name(gobj)), 0, 0);
|
|
2933
|
+
} else return build_command_response(gobj, -1, sprintf("%s: command table not available", gobj_short_name(gobj)), 0, 0);
|
|
2936
2934
|
}
|
|
2937
2935
|
/************************************************************
|
|
2938
2936
|
* Exec gobj stats. Return a webix
|
|
@@ -3039,22 +3037,26 @@ function format_log(format) {
|
|
|
3039
3037
|
function log_error(format) {
|
|
3040
3038
|
let msg = format_log(format);
|
|
3041
3039
|
let hora = current_timestamp();
|
|
3042
|
-
if (f_error)
|
|
3043
|
-
if (
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3040
|
+
if (f_error) {
|
|
3041
|
+
if (f_error === _console.error) {
|
|
3042
|
+
if (__console_output_enabled__) f_error("%c" + hora + " ERROR: " + String(msg), "color:red");
|
|
3043
|
+
} else {
|
|
3044
|
+
if (__console_output_enabled__) _console.error("%c" + hora + " ERROR: " + String(msg), "color:red");
|
|
3045
|
+
f_error(`${hora} ERROR: ${String(msg)}`);
|
|
3046
|
+
}
|
|
3047
3047
|
}
|
|
3048
3048
|
emit_log_callback("error", msg, hora);
|
|
3049
3049
|
}
|
|
3050
3050
|
function log_warning(format) {
|
|
3051
3051
|
let msg = format_log(format);
|
|
3052
3052
|
let hora = current_timestamp();
|
|
3053
|
-
if (f_warning)
|
|
3054
|
-
if (
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3053
|
+
if (f_warning) {
|
|
3054
|
+
if (f_warning === _console.warn) {
|
|
3055
|
+
if (__console_output_enabled__) f_warning("%c" + hora + " WARNING: " + String(msg), "color:yellow");
|
|
3056
|
+
} else {
|
|
3057
|
+
if (__console_output_enabled__) _console.warn("%c" + hora + " WARNING: " + String(msg), "color:yellow");
|
|
3058
|
+
f_warning(`${hora} WARNING: ${String(msg)}`);
|
|
3059
|
+
}
|
|
3058
3060
|
}
|
|
3059
3061
|
emit_log_callback("warning", msg, hora);
|
|
3060
3062
|
}
|
|
@@ -4090,10 +4092,12 @@ function list2options(list, field_id, field_value) {
|
|
|
4090
4092
|
vv["id"] = field_id;
|
|
4091
4093
|
vv["value"] = v[field_id];
|
|
4092
4094
|
} else {
|
|
4093
|
-
if (!kw_has_key(v, field_value))
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4095
|
+
if (!kw_has_key(v, field_value)) {
|
|
4096
|
+
if (json_size(v) > 0) field_value = Object.keys(v)[0];
|
|
4097
|
+
else {
|
|
4098
|
+
log_error("list2options(): object without field value: " + field_value);
|
|
4099
|
+
continue;
|
|
4100
|
+
}
|
|
4097
4101
|
}
|
|
4098
4102
|
vv["id"] = v[field_id];
|
|
4099
4103
|
vv["value"] = v[field_value];
|
|
@@ -4409,13 +4413,15 @@ function jdb_update(jdb, topic_name, path, kw) {
|
|
|
4409
4413
|
if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, [], 1);
|
|
4410
4414
|
v = _jdb_get(v, null, id, false);
|
|
4411
4415
|
}
|
|
4412
|
-
if (ids.length === 0 && v)
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4416
|
+
if (ids.length === 0 && v) {
|
|
4417
|
+
if (is_array(v)) v.push(kw);
|
|
4418
|
+
else if (v["id"] === kw["id"]) Object.assign(v, kw);
|
|
4419
|
+
else {
|
|
4420
|
+
let v_ = kw_get_dict_value(null, v, jdb.hook, [], 1);
|
|
4421
|
+
let v__ = _jdb_get(v_, jdb.hook, kw["id"], false);
|
|
4422
|
+
if (v__) Object.assign(v__, kw);
|
|
4423
|
+
else v_.push(kw);
|
|
4424
|
+
}
|
|
4419
4425
|
}
|
|
4420
4426
|
return topic;
|
|
4421
4427
|
}
|
|
@@ -4441,13 +4447,15 @@ function jdb_delete(jdb, topic_name, path, kw) {
|
|
|
4441
4447
|
if (is_object(v)) v = kw_get_dict_value(null, v, jdb.hook, null, 0);
|
|
4442
4448
|
v = _jdb_get(v, null, id, false);
|
|
4443
4449
|
}
|
|
4444
|
-
if (ids.length === 0 && v)
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4450
|
+
if (ids.length === 0 && v) {
|
|
4451
|
+
if (is_array(v)) {
|
|
4452
|
+
let idx = id_index_in_obj_list(v, kw["id"]);
|
|
4453
|
+
if (idx >= 0) v.splice(idx, 1);
|
|
4454
|
+
} else {
|
|
4455
|
+
let v_ = kw_get_dict_value(null, v, jdb.hook, null, 0);
|
|
4456
|
+
let idx = id_index_in_obj_list(v_, kw["id"]);
|
|
4457
|
+
if (idx >= 0) v_.splice(idx, 1);
|
|
4458
|
+
}
|
|
4451
4459
|
}
|
|
4452
4460
|
return topic;
|
|
4453
4461
|
}
|
|
@@ -5174,41 +5182,42 @@ function treedb_hook_data_size(value) {
|
|
|
5174
5182
|
* }
|
|
5175
5183
|
************************************************************/
|
|
5176
5184
|
function treedb_decoder_fkey(col, fkey) {
|
|
5177
|
-
if (is_string(fkey))
|
|
5178
|
-
|
|
5179
|
-
|
|
5180
|
-
|
|
5181
|
-
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5185
|
+
if (is_string(fkey)) {
|
|
5186
|
+
if (fkey.indexOf("^") === -1) {
|
|
5187
|
+
let fkey_desc = col.fkey;
|
|
5188
|
+
if (json_object_size(fkey_desc) !== 1) {
|
|
5189
|
+
log_error("bad fkey 1");
|
|
5190
|
+
log_error(col);
|
|
5191
|
+
log_error(fkey);
|
|
5192
|
+
return null;
|
|
5193
|
+
}
|
|
5194
|
+
let topic_name;
|
|
5195
|
+
let hook_name;
|
|
5196
|
+
for (const k of Object.keys(fkey_desc)) {
|
|
5197
|
+
topic_name = k;
|
|
5198
|
+
hook_name = fkey_desc[k];
|
|
5199
|
+
break;
|
|
5200
|
+
}
|
|
5201
|
+
return {
|
|
5202
|
+
topic_name,
|
|
5203
|
+
id: fkey,
|
|
5204
|
+
hook_name
|
|
5205
|
+
};
|
|
5206
|
+
} else {
|
|
5207
|
+
let tt = fkey.split("^");
|
|
5208
|
+
if (tt.length !== 3) {
|
|
5209
|
+
log_error("bad fkey 2");
|
|
5210
|
+
log_error(col);
|
|
5211
|
+
log_error(fkey);
|
|
5212
|
+
return null;
|
|
5213
|
+
}
|
|
5214
|
+
return {
|
|
5215
|
+
topic_name: tt[0],
|
|
5216
|
+
id: tt[1],
|
|
5217
|
+
hook_name: tt[2]
|
|
5218
|
+
};
|
|
5204
5219
|
}
|
|
5205
|
-
|
|
5206
|
-
topic_name: tt[0],
|
|
5207
|
-
id: tt[1],
|
|
5208
|
-
hook_name: tt[2]
|
|
5209
|
-
};
|
|
5210
|
-
}
|
|
5211
|
-
else if (is_object(fkey)) return {
|
|
5220
|
+
} else if (is_object(fkey)) return {
|
|
5212
5221
|
topic_name: fkey.topic_name,
|
|
5213
5222
|
id: fkey.id,
|
|
5214
5223
|
hook_name: fkey.hook_name
|
|
@@ -5250,38 +5259,39 @@ function treedb_encoder_fkey(col, fkey) {
|
|
|
5250
5259
|
* }
|
|
5251
5260
|
********************************************/
|
|
5252
5261
|
function treedb_decoder_hook(col, hook) {
|
|
5253
|
-
if (is_string(hook))
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
|
|
5262
|
+
if (is_string(hook)) {
|
|
5263
|
+
if (hook.indexOf("^") === -1) {
|
|
5264
|
+
let hook_desc = col.hook;
|
|
5265
|
+
if (json_object_size(hook_desc) !== 1) {
|
|
5266
|
+
log_error("bad hook 1");
|
|
5267
|
+
log_error(col);
|
|
5268
|
+
log_error(hook);
|
|
5269
|
+
return null;
|
|
5270
|
+
}
|
|
5271
|
+
let topic_name;
|
|
5272
|
+
for (let k of Object.keys(hook_desc)) {
|
|
5273
|
+
topic_name = k;
|
|
5274
|
+
hook_desc[k];
|
|
5275
|
+
break;
|
|
5276
|
+
}
|
|
5277
|
+
return {
|
|
5278
|
+
topic_name,
|
|
5279
|
+
id: hook
|
|
5280
|
+
};
|
|
5281
|
+
} else {
|
|
5282
|
+
let tt = hook.split("^");
|
|
5283
|
+
if (tt.length !== 2) {
|
|
5284
|
+
log_error("bad hook 2");
|
|
5285
|
+
log_error(col);
|
|
5286
|
+
log_error(hook);
|
|
5287
|
+
return null;
|
|
5288
|
+
}
|
|
5289
|
+
return {
|
|
5290
|
+
topic_name: tt[0],
|
|
5291
|
+
id: tt[1]
|
|
5292
|
+
};
|
|
5278
5293
|
}
|
|
5279
|
-
|
|
5280
|
-
topic_name: tt[0],
|
|
5281
|
-
id: tt[1]
|
|
5282
|
-
};
|
|
5283
|
-
}
|
|
5284
|
-
else if (is_object(hook)) return {
|
|
5294
|
+
} else if (is_object(hook)) return {
|
|
5285
5295
|
topic_name: hook.topic_name,
|
|
5286
5296
|
id: hook.id
|
|
5287
5297
|
};
|
|
@@ -5342,6 +5352,7 @@ var treedb_field_types = [
|
|
|
5342
5352
|
"template",
|
|
5343
5353
|
"uuid",
|
|
5344
5354
|
"rowid",
|
|
5355
|
+
"qualified",
|
|
5345
5356
|
"password",
|
|
5346
5357
|
"email",
|
|
5347
5358
|
"url",
|
|
@@ -5387,9 +5398,7 @@ function treedb_get_field_desc(col) {
|
|
|
5387
5398
|
case "template":
|
|
5388
5399
|
field_desc.enum_list = col.template;
|
|
5389
5400
|
break;
|
|
5390
|
-
case "table":
|
|
5391
|
-
field_desc.enum_list = col.table;
|
|
5392
|
-
break;
|
|
5401
|
+
case "table": field_desc.enum_list = col.table;
|
|
5393
5402
|
}
|
|
5394
5403
|
field_desc.type = f;
|
|
5395
5404
|
} else if (str_in_list(treedb_field_attributes, f)) switch (f) {
|
|
@@ -5402,9 +5411,7 @@ function treedb_get_field_desc(col) {
|
|
|
5402
5411
|
case "required":
|
|
5403
5412
|
field_desc.is_required = true;
|
|
5404
5413
|
break;
|
|
5405
|
-
case "hidden":
|
|
5406
|
-
field_desc.is_hidden = true;
|
|
5407
|
-
break;
|
|
5414
|
+
case "hidden": field_desc.is_hidden = true;
|
|
5408
5415
|
}
|
|
5409
5416
|
}
|
|
5410
5417
|
return field_desc;
|
|
@@ -5441,9 +5448,7 @@ function template_get_field_desc(key, value) {
|
|
|
5441
5448
|
case "required":
|
|
5442
5449
|
field_desc.is_required = true;
|
|
5443
5450
|
break;
|
|
5444
|
-
case "hidden":
|
|
5445
|
-
field_desc.is_hidden = true;
|
|
5446
|
-
break;
|
|
5451
|
+
case "hidden": field_desc.is_hidden = true;
|
|
5447
5452
|
}
|
|
5448
5453
|
}
|
|
5449
5454
|
if (!field_desc.real_type) field_desc.real_type = "string";
|
|
@@ -5467,7 +5472,8 @@ function create_template_record(template, kw) {
|
|
|
5467
5472
|
Object.entries(template).forEach(([field, col]) => {
|
|
5468
5473
|
let default_value;
|
|
5469
5474
|
if (is_object(col)) default_value = col.default;
|
|
5470
|
-
|
|
5475
|
+
let value = kw_get_dict_value(null, kw, field, default_value);
|
|
5476
|
+
new_record[field] = value;
|
|
5471
5477
|
});
|
|
5472
5478
|
return new_record;
|
|
5473
5479
|
}
|
|
@@ -5548,7 +5554,6 @@ function mt_writing$2(gobj, path) {
|
|
|
5548
5554
|
if (priv.msec > 0) {
|
|
5549
5555
|
if (!gobj_is_running(gobj)) gobj_start(gobj);
|
|
5550
5556
|
} else if (gobj_is_running(gobj)) gobj_stop(gobj);
|
|
5551
|
-
break;
|
|
5552
5557
|
}
|
|
5553
5558
|
}
|
|
5554
5559
|
/***************************************************************
|
|
@@ -5907,9 +5912,7 @@ function mt_writing(gobj, path) {
|
|
|
5907
5912
|
case "remote_yuno_role":
|
|
5908
5913
|
priv.remote_yuno_role = gobj_read_str_attr(gobj, "remote_yuno_role");
|
|
5909
5914
|
break;
|
|
5910
|
-
case "remote_yuno_service":
|
|
5911
|
-
priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
|
|
5912
|
-
break;
|
|
5915
|
+
case "remote_yuno_service": priv.remote_yuno_service = gobj_read_str_attr(gobj, "remote_yuno_service");
|
|
5913
5916
|
}
|
|
5914
5917
|
}
|
|
5915
5918
|
/***************************************************************
|
|
@@ -6451,12 +6454,13 @@ function ac_on_message(gobj, event, kw, src) {
|
|
|
6451
6454
|
return 0;
|
|
6452
6455
|
}
|
|
6453
6456
|
let gobj_service = gobj_find_service(iev_dst_service, true);
|
|
6454
|
-
if (gobj_service)
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6457
|
+
if (gobj_service) {
|
|
6458
|
+
if (gobj_has_event(gobj_service, iev_event, event_flag_t.EVF_PUBLIC_EVENT)) gobj_send_event(gobj_service, iev_event, iev_kw, gobj);
|
|
6459
|
+
else {
|
|
6460
|
+
log_error(`${gobj_short_name(gobj)}: Service found but no event or not public, service '${gobj_short_name(gobj_service)}', ev '${iev_event}'`);
|
|
6461
|
+
return -1;
|
|
6462
|
+
}
|
|
6463
|
+
} else if (gobj_is_pure_child(gobj)) gobj_send_event(gobj_parent(gobj), iev_event, iev_kw, gobj);
|
|
6460
6464
|
else gobj_publish_event(gobj, iev_event, iev_kw);
|
|
6461
6465
|
return 0;
|
|
6462
6466
|
}
|