[omniORB] Callback

Guy Trudel gtrudel@mediatrix.com
Thu, 11 Nov 1999 16:28:51 -0500


It was a mix of two test. In my case I wanted to be all synchronous.

In the past I made myself somekind of an 'callback service', and I didn't
use the oneway at all because of the corba specs. 


-----Original Message-----
From: Theo Aukerman [mailto:taukerman@logici.com]
Sent: Thursday, November 11, 1999 4:04 PM
Cc: Omniorb-List (E-mail)
Subject: RE: [omniORB] Callback


That's what I was afraid of regarding one-way semantics.

-----Original Message-----
From: Rob Cecil [mailto:rceci@master.adams.com]
Sent: Thursday, November 11, 1999 12:56 PM
To: Guy Trudel
Cc: Omniorb-List (E-mail); 'Renny Koshy'
Subject: Re: [omniORB] Callback


The Corba spec does not guarantee non-blocking behavior or asynch call
dispatch. 

Read p. 96 of Advanced Corba Programming with C++ [Henning/Vinoski].  They
recommend avoid oneways completely. 


Perhaps you need to look at the Event service as an alternative to
callbacks? 


Rob 


Guy Trudel wrote: 


I'm quite new with OmniOrb so maybe that's not the 'good' way, but I just 
tested callback in my evaluation yesterday. 

Idl 


interface ChallengeAuthentication 
{ 
        void Challenge(in long magicNumber, out string response ); 
}; 


interface ServerA 
{ 
  oneway void DoSomething(); 
}; 


call in my client 
void CMyClient::DoSomething() 
{ 
    CChallengeAuthenticationImpl* pChallenge = new 
CChallengeAuthenticationImpl(); 


    m_boa->obj_is_ready(pChallenge); 
    m_boa->impl_is_ready(NULL,1); 


    try 
    { 
        m_server->DoSomething( pChallenge ); 
    } 
    catch( CORBA::SystemException& ex ) 
    { 
        cout << ex.NP_RepositoryId() << endl; 
    } 
    catch( omniORB::fatalException& ) 
    { 
        cout << "Caught a omniORB::fatalException." << endl; 
    } 
    catch (...) 
    { 
        cout << ""Caught a ... exception." << endl; 
    } 
} 


and somewhere else on a time out or somekind of end transaction 
{ 
   // Remove the callback object 
   pChallenge->_dispose(); 
} 


Just remind that with oneway keyword you can not know if your server (or 
client callback) receive the request. 


Guy Trudel

-- 

| Rob Cecil          | Senior Development Engineer                 |

| rceci@adams.com    | Product Development                         |

| (734) 913-9351     | Mechanical Dynamics, Inc. (www.adams.com)   |

--------------------------------------------------------------------

 Modern Quantum Physics has found that the universe is composed of

 25% protons, 15% electrons, 15% neutrons, and 45% morons.