Exemplo n.º 1
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        base.toReadBytesFull(stream);

        stream.startReadObj();

        int roleGroupSimpleDataDicLen = stream.readLen();

        if (this.roleGroupSimpleDataDic != null)
        {
            this.roleGroupSimpleDataDic.clear();
            this.roleGroupSimpleDataDic.ensureCapacity(roleGroupSimpleDataDicLen);
        }
        else
        {
            this.roleGroupSimpleDataDic = new LongObjectMap <RoleGroupSimpleData>(roleGroupSimpleDataDicLen);
        }

        LongObjectMap <RoleGroupSimpleData> roleGroupSimpleDataDicT = this.roleGroupSimpleDataDic;

        for (int roleGroupSimpleDataDicI = roleGroupSimpleDataDicLen - 1; roleGroupSimpleDataDicI >= 0; --roleGroupSimpleDataDicI)
        {
            long roleGroupSimpleDataDicK;
            RoleGroupSimpleData roleGroupSimpleDataDicV;
            roleGroupSimpleDataDicK = stream.readLong();

            BaseData roleGroupSimpleDataDicVT = stream.readDataFullNotNull();
            if (roleGroupSimpleDataDicVT != null)
            {
                if (roleGroupSimpleDataDicVT is RoleGroupSimpleData)
                {
                    roleGroupSimpleDataDicV = (RoleGroupSimpleData)roleGroupSimpleDataDicVT;
                }
                else
                {
                    roleGroupSimpleDataDicV = new RoleGroupSimpleData();
                    if (!(roleGroupSimpleDataDicVT.GetType().IsAssignableFrom(typeof(RoleGroupSimpleData))))
                    {
                        stream.throwTypeReadError(typeof(RoleGroupSimpleData), roleGroupSimpleDataDicVT.GetType());
                    }
                    roleGroupSimpleDataDicV.shadowCopy(roleGroupSimpleDataDicVT);
                }
            }
            else
            {
                roleGroupSimpleDataDicV = null;
            }

            roleGroupSimpleDataDicT.put(roleGroupSimpleDataDicK, roleGroupSimpleDataDicV);
        }

        stream.endReadObj();
    }
Exemplo n.º 2
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        base.toReadBytesFull(stream);

        stream.startReadObj();

        int simpleDatasLen = stream.readLen();

        if (this.simpleDatas != null)
        {
            this.simpleDatas.clear();
            this.simpleDatas.ensureCapacity(simpleDatasLen);
        }
        else
        {
            this.simpleDatas = new LongObjectMap <RoleGroupSimpleData>(simpleDatasLen);
        }

        LongObjectMap <RoleGroupSimpleData> simpleDatasT = this.simpleDatas;

        for (int simpleDatasI = simpleDatasLen - 1; simpleDatasI >= 0; --simpleDatasI)
        {
            long simpleDatasK;
            RoleGroupSimpleData simpleDatasV;
            simpleDatasK = stream.readLong();

            BaseData simpleDatasVT = stream.readDataFullNotNull();
            if (simpleDatasVT != null)
            {
                if (simpleDatasVT is RoleGroupSimpleData)
                {
                    simpleDatasV = (RoleGroupSimpleData)simpleDatasVT;
                }
                else
                {
                    simpleDatasV = new RoleGroupSimpleData();
                    if (!(simpleDatasVT.GetType().IsAssignableFrom(typeof(RoleGroupSimpleData))))
                    {
                        stream.throwTypeReadError(typeof(RoleGroupSimpleData), simpleDatasVT.GetType());
                    }
                    simpleDatasV.shadowCopy(simpleDatasVT);
                }
            }
            else
            {
                simpleDatasV = null;
            }

            simpleDatasT.put(simpleDatasK, simpleDatasV);
        }

        stream.endReadObj();
    }