[omniORB] two dimensional arrays
jshannon
jshannon@falcon.cc.ku.edu
Wed, 27 Feb 2002 14:25:34 -0600
I'm trying to pass a two dimensional array of bytes from a JacOrb Server to an
OmniOrb client, and have been unable to do so.
The pertinent idl both client and server side look like:
interface IvpBroker
{
const short NUM_WALLS = 6; /* Number of walls */
typedef double vector_array[4]; /* a CHenonVector */
typedef double complex_array[2]; /* a CHenonComplex */
typedef sequence <octet> aWall; /* one wall */
typedef aWall Walls[NUM_WALLS]; /*
Walls updateWalls("A BUNCH OF PARAMETERS");
};
Using a Java client (for testing), I obtain a reference and use:
byte theWalls[][] = null;
theWalls = ivpBroker.updateWalls("Pass a bunch of parameters..");
All is fine; however, when I try to use a C++ client, I can't seem to at the
values. I have tried several approaches, and can get none to work. The
compiler says that that the return type from:
theWalls = hc->broker->updateWalls("parameters");
Is a 'divp::IvpBroker::Walls_slice *' Why not a '**'???
Is all the data structure really there?
Should I cast or do I need to get the array one dimension at a time(which
kills my performance)?
Thanks in advance...
Joe
Joe Shannonhouse
EECS Department
University of Kansas
219 Snow Hall (785)864-7381
Lawrence, KS 66045
shannj@eecs.ukans.edu