[omniORB] Invalid TypeCode..

Duncan Grisby dgrisby@uk.research.att.com
Tue, 25 Apr 2000 14:51:43 +0100


On Tuesday 25 April, Shawn Bisgrove wrote:

>    The question now is why did it work and what does
> it do?   Forgive me for being dense.  I would like to
> know if this is nescessary to solve the problem at
> hand or if it is just coincidentally masking the
> underlying problem.
> 
>    omniORB::useTypeCodeIndirections = 0 ; //added 

If a TypeCode fragment appears more than once in a complete TypeCode,
the marshalled form can insert an "indirection" to avoid the overhead
of marshalling the whole thing again. For example, in

  struct S1 {
    long l;
    string s;
  };

  struct S2 {
    S1 s11;
    S1 s12;
  };

the naive representation of S2's TypeCode will contain S1's TypeCode
twice. With indirections, the second instance is replaced with a
(negative) offset pointing to the first instance. Some ORBs do not
understand indirections; omniORB::useTypeCodeIndirections = 0 prevents
omniORB from using them.

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --