[orbitcpp-list] Finding servant types (long)
Status: Beta
Brought to you by:
philipd
From: <bb...@ya...> - 2002-01-15 10:52:01
|
I submitted bug 503269 earlier this week. I'm now working on a fix for it. I've gotten half way but need some help from folks that know the code better than me. Basically in some cases it is necessary to construct an object (eg. _out) to pass to the skel implementation (see the bug report for why). I'll take an (abbreviated) example of a generated skel from test/everything/generated/everthing-cpp-skel.cc (orbitcpp-0.30.2) LongArray_slice *POA_BasicServer::_skel_opLongArray( ::PortableServer_Servant _servant, const LongArray inArg, LongArray inoutArg, LongArray outArg, ::CORBA_Environment *_ev){ ... retval = _self->opLongArray( reinterpret_cast< const ::LongArray_slice *&>(inArg), reinterpret_cast< ::LongArray_slice *&>(inoutArg), reinterpret_cast< ::LongArray_slice *&>(outArg) ); ... } _self points to an object of type POA_test::BasicServer - the servant implementation type. When generating this skel code (ie. in IDLPassSkels::doOperationSkel() ) how can I get strings which define the types expected for each argument of POA_test::BasicServer::opLongArray() ? The code I need to generate would look something like { TypeOfArg1 paramWraper1( reinterpret_cast< const ::LongArray_slice *&>(inArg) ); TypeOfArg2 paramWrapper2( reinterpret_cast< ::LongArray_slice *&>(inoutArg) ); TypeOfArg3 paramWrapper3( reinterpret_cast< ::LongArray_slice *&>(outArg) ) ); ... _self->opLongArray( paramWrapper1, paramWrapper2, paramWrapper3 ); } I need to know what to substitute for TypeOfArgX above. In this case I would need (see everything-cpp-skel.hh) const ::test:LongArray paramWrapper1( . ); ::test:LongArray paramWrapper2( . ); ::test:LongArray_out paramWrapper3( . ); -- TIA Rich http://my.yahoo.com.au - My Yahoo! - It's My Yahoo! Get your own! |