[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!
|