Exemplo n.º 1
0
        public OctetsStream Unmarshal(OctetsStream s)
        {
            Init();
            for (;;)
            {
                int i = s.UnmarshalUInt1(), t = i & 3; if ((i >>= 2) == 63)
                {
                    i += s.UnmarshalUInt1();
                }
                switch (i)
                {
                case 0: return(s);

                case 1: this.v1 = (s.UnmarshalInt(t) != 0); break;

                case 2: this.v2 = (sbyte)s.UnmarshalInt(t); break;

                case 3: this.v3 = (short)s.UnmarshalInt(t); break;

                case 4: this.v4 = s.UnmarshalInt(t); break;

                case 5: this.v5 = s.UnmarshalLong(t); break;

                case 6: this.v6 = s.UnmarshalFloat(t); break;

                case 7: this.v7 = s.UnmarshalDouble(t); break;

                case 8: s.Unmarshal(this.v8, t); break;

                case 9: this.v9 = s.UnmarshalString(t); break;

                case 10:
                {
                    this.v10.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 3) != 0)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    t &= 7;
                    int n = s.UnmarshalUInt();
                    this.v10.Capacity = (n < 0x10000 ? n : 0x10000);
                    for (; n > 0; --n)
                    {
                        this.v10.Add((s.UnmarshalIntKV(t) != 0));
                    }
                } break;

                case 11:
                {
                    this.v11.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 3) != 0)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v11.AddLast((sbyte)s.UnmarshalIntKV(t));
                    }
                } break;

                case 12:
                {
                    this.v12.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 3) != 0)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v12.AddLast(s.UnmarshalIntKV(t));
                    }
                } break;

                case 13:
                {
                    this.v13.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 3) != 0)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v13.Add(s.UnmarshalLongKV(t));
                    }
                } break;

                case 14:
                {
                    this.v14.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 3) != 0)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v14.Add(s.UnmarshalFloatKV(t));
                    }
                } break;

                case 15:
                {
                    this.v15.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 3) != 0)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v15.Add(s.UnmarshalDoubleKV(t));
                    }
                } break;

                case 16:
                {
                    this.v16.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 6) != 1)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    int k = (t >> 3) & 7; t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v16.Add(s.UnmarshalLongKV(k), s.UnmarshalStringKV(t));
                    }
                } break;

                case 17:
                {
                    this.v17.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 6) != 1)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    int k = (t >> 3) & 7; t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v17.Add((TestBean)s.UnmarshalBeanKV(TestBean.Create(), k), (s.UnmarshalIntKV(t) != 0));
                    }
                } break;

                case 18:
                {
                    this.v18.Clear();
                    if (t != 3)
                    {
                        s.UnmarshalSkipVar(t); break;
                    }
                    t = s.UnmarshalUInt1();
                    if ((t >> 6) != 1)
                    {
                        s.UnmarshalSkipVarSub(t); break;
                    }
                    int k = (t >> 3) & 7; t &= 7;
                    for (int n = s.UnmarshalUInt(); n > 0; --n)
                    {
                        this.v18.Add(s.UnmarshalOctetsKV(k), (TestBean)s.UnmarshalBeanKV(TestBean.Create(), t));
                    }
                } break;

                case 19: s.UnmarshalBean(this.v19, t); break;

                default: s.UnmarshalSkipVar(t); break;
                }
            }
        }