__exec_global_fn : comunicare verso oggetti globali
Per mandare un messaggio e un insieme di parametri ad un oggetto globale è necessaria la conoscenza del suo identificatore globale; la richiesta è effettuata mediante la macro variadic __exec_global_fn della quale si riporta la definizione:
#define __exec_global_fn(...) test_request::exec_global_fn( __VA_ARGS__,_$end)
- Il primo argomento della macro è sempre l’identificatore globale dell’oggetto destinazione
- Il secondo argomento è func_name, seguito eventualmente da op_id
- Seguono eventualmente un numero qualunque di argomenti passati.
Un esempio reale è il seguente:
__exec_global_fn(_$dock_edit_layout,_$detach,_$document,doc);
La macro richiede all’oggetto globale _$dock_edit_layout di sconnettersi (_$detach) dal documento (_$document) puntato da doc; è equivalente, nel linguaggio CLB_language del framework alla frase
_$detach _$document doc from $dock_edit_layout
Del linguaggio interpretato CLB_language di Colibri scriveremo in successivi post.
Ovviamente il messaggio dovrà poter essere interpretato dall’istanza di identificatore _$dock_edit_layout; fra poco descriveremo come, in un esempio pratico.