Classi di libreria CORBA

Autore: stefano.russo@unina.it C++

Sia: long metodoRestituisceLong() il metodo da invocare. Rispetto al caso precedente il cliente dovrà recuperare il valore di ritorno. Dalla risposta ottenuta è possibile estrarre il risultato nel formato opportuno (float).
  1. public class ClientDII{
  2. public static void main(String[] args){
  3.         org.omg.CORBA.Object objRef=null; org.omg.CORBA.Request request= null; long valoreRitorno;  org.omg.CORBA.ORB orb=null;
  4.         try{
  5.                 //inizializzazione della piattaforma
  6.                 orb=org.omg.CORBA.ORB.init(args, null);
  7.                 //risoluzione del servizio tramite conversione da stringa fornita da linea di comando (non realistico)
  8.                 objRef = orb.string_to_object(args[0]);
  9.                 // 1) costruzione della Request (due passi)
  10.                 // 1a) costruzione dell'oggetto
  11.                 request=objRef._request("metodoRestituisceLong");
  12.                 // 1b) specifica del tipo del risultato e sua inizializzazione
  13.                 request.return_value().insert_long(0);
  14.                 // 2) invocazione della request
  15.                 request.invoke();
  16.                 // 3) recupero del risultato (noto che si tratta di un long)
  17.                 valoreRitorno=request.return_value().extract_long();
  18.                 //4) distruzione della request
  19.                 request.delete();
  20. }catch(org.omg.CORBA.SystemException ex){ } } }