Beispiel #1
0
 public static Murmur.Tree[] read(IceInternal.BasicStream is__)
 {
     Murmur.Tree[] v__;
     {
         int szx__ = is__.readSize();
         is__.startSeq(szx__, 4);
         v__ = new Murmur.Tree[szx__];
         for(int ix__ = 0; ix__ < szx__; ++ix__)
         {
             IceInternal.ArrayPatcher<Murmur.Tree> spx = new IceInternal.ArrayPatcher<Murmur.Tree>("::Murmur::Tree", v__, ix__);
             is__.readObject(spx);
             is__.checkSeq();
             is__.endElement();
         }
         is__.endSeq(szx__);
     }
     return v__;
 }
Beispiel #2
0
            private Ice.SlicedData readSlicedData()
            {
                if(_current.slices == null) // No preserved slices.
                {
                    return null;
                }

                //
                // The _indirectionTables member holds the indirection table for each slice
                // in _slices.
                //
                Debug.Assert(_current.slices.Count == _current.indirectionTables.Count);
                for(int n = 0; n < _current.slices.Count; ++n)
                {
                    //
                    // We use the "instances" list in SliceInfo to hold references
                    // to the target instances. Note that the instances might not have
                    // been read yet in the case of a circular reference to an
                    // enclosing instance.
                    //
                    int[] table = _current.indirectionTables[n];
                    Ice.SliceInfo info = _current.slices[n];
                    info.instances = new Ice.Object[table != null ? table.Length : 0];
                    for(int j = 0; j < info.instances.Length; ++j)
                    {
                        IceInternal.ArrayPatcher<Ice.Object> patcher =
                            new IceInternal.ArrayPatcher<Ice.Object>(Ice.ObjectImpl.ice_staticId(), info.instances, j);
                        addPatchEntry(table[j], patcher.patch);
                    }
                }

                return new Ice.SlicedData(_current.slices.ToArray());
            }
Beispiel #3
0
 public override void read__(IceInternal.BasicStream is__, bool rid__)
 {
     if(rid__)
     {
         /* string myId = */ is__.readTypeId();
     }
     is__.startReadSlice();
     if(c == null)
     {
         c = new Murmur.Channel();
     }
     c.read__(is__);
     {
         int szx__ = is__.readSize();
         is__.startSeq(szx__, 4);
         children = new Murmur.Tree[szx__];
         for(int ix__ = 0; ix__ < szx__; ++ix__)
         {
             IceInternal.ArrayPatcher<Murmur.Tree> spx = new IceInternal.ArrayPatcher<Murmur.Tree>("::Murmur::Tree", children, ix__);
             is__.readObject(spx);
             is__.checkSeq();
             is__.endElement();
         }
         is__.endSeq(szx__);
     }
     {
         int szx__ = is__.readSize();
         is__.startSeq(szx__, 42);
         users = new Murmur.User[szx__];
         for(int ix__ = 0; ix__ < szx__; ++ix__)
         {
             users[ix__] = new Murmur.User();
             users[ix__].read__(is__);
             is__.checkSeq();
             is__.endElement();
         }
         is__.endSeq(szx__);
     }
     is__.endReadSlice();
     base.read__(is__, true);
 }
Beispiel #4
0
 public static Murmur.Tree[] read(IceInternal.BasicStream is__)
 {
     Murmur.Tree[] v__;
     {
         int szx__ = is__.readAndCheckSeqSize(4);
         v__ = new Murmur.Tree[szx__];
         for(int ix__ = 0; ix__ < szx__; ++ix__)
         {
             IceInternal.ArrayPatcher<Murmur.Tree> spx = new IceInternal.ArrayPatcher<Murmur.Tree>("::Murmur::Tree", v__, ix__);
             is__.readObject(spx);
         }
     }
     return v__;
 }