__return : ritornare informazioni dall'oggetto ricevente il messaggio

il comando __return permette di rimandare un oggetto dopo la ricezione del messaggio; è importante notare che utilizzando questi metodi di comunicazione fra gli oggetti non è in genere necessario conoscerne la tipizzazione, nel caso di oggetti globali; questo permette di lanciare messaggi che non necessariamente saranno interpretati (ad esempio  l’oggetto globale può non esistere, o il comando non  essere corretto, ma questo non genererà eccezioni nel codice);  l’oggetto globale può essere definito in una DLL non direttamente accessibile (visibile) da quella chiamante.

__return:  all’interno del blocco di riconoscimento del comando è possibile utilizzare la macro per restituire un oggetto; ad esempio:

__is_function(_$export)
     {
	if (__required_operation(_$lum)) 		// expor lum channel..
        {
	  __return($obj->GetLuminanceMap())
	}
        //......
        //......
        //......
    }
    //...

Il codice riportato riconosce il comando  (_$export,_$lum)   e usa la macro __return per rimandare il canale di luminanza generato sull’istanza SPECTRAL_IMAGE.

Un possibile comando per ricevere questa informazione è :

DOCUMENT *doc = ( DOCUMENT * ) __exec_global_fn(spt_doc, _$export,_$lum);
if (doc)
{
  //.....
  //.....
}

Dove doc è il documento luminanza rimandato e spt_doc è l’oggetto SPECTRAL_IMAGE interrogato; notare che il valore ritornato è caratterizzato come DOCUMENT.

 

Pages: 1 2 3 4 5 6 7

Leave a Reply

Skip to toolbar