Пример #1
0
    /// <summary>
    /// 回池
    /// </summary>
    protected override void toRelease(DataPool pool)
    {
        base.toRelease(pool);

        this.data.release(pool);
        this.data = null;
    }
Пример #2
0
    /// <summary>
    /// 写入字节流(完整版)
    /// </summary>
    protected override void toWriteBytesFull(BytesWriteStream stream)
    {
        stream.startWriteObj();

        stream.writeInt(this.index);

        if (this.list != null)
        {
            stream.writeLen(this.list.size());
            if (!this.list.isEmpty())
            {
                ClientOfflineWorkData[] listVValues = this.list.getValues();
                for (int listVI = 0, listVLen = this.list.length(); listVI < listVLen; ++listVI)
                {
                    ClientOfflineWorkData listV = listVValues[listVI];
                    if (listV != null)
                    {
                        stream.writeDataFullNotNull(listV);
                    }
                    else
                    {
                        nullObjError("listV");
                    }
                }
            }
        }
        else
        {
            nullObjError("list");
        }

        stream.writeInt(this.clientRandomSeedIndex);

        stream.endWriteObj();
    }
    /// <summary>
    /// 写入字节流(完整版)
    /// </summary>
    protected override void toWriteBytesFull(BytesWriteStream stream)
    {
        base.toWriteBytesFull(stream);

        stream.startWriteObj();

        if (this.records != null)
        {
            stream.writeLen(this.records.size());
            if (!this.records.isEmpty())
            {
                ClientOfflineWorkData[] recordsVValues = this.records.getValues();
                for (int recordsVI = 0, recordsVLen = this.records.length(); recordsVI < recordsVLen; ++recordsVI)
                {
                    ClientOfflineWorkData recordsV = recordsVValues[recordsVI];
                    if (recordsV != null)
                    {
                        stream.writeDataFullNotNull(recordsV);
                    }
                    else
                    {
                        nullObjError("recordsV");
                    }
                }
            }
        }
        else
        {
            nullObjError("records");
        }

        stream.writeInt(this.clientRandomSeedIndex);

        stream.endWriteObj();
    }
Пример #4
0
    /// <summary>
    /// 创建实例
    /// </summary>
    public static SendClientOfflineWorkRequest create(ClientOfflineWorkData data)
    {
        SendClientOfflineWorkRequest re = (SendClientOfflineWorkRequest)BytesControl.createRequest(dataID);

        re.data = data;
        return(re);
    }
Пример #5
0
    /// <summary>
    /// 转文本输出
    /// </summary>
    protected override void toWriteDataString(DataWriter writer)
    {
        writer.writeTabs();
        writer.sb.Append("index");
        writer.sb.Append(':');
        writer.sb.Append(this.index);

        writer.writeEnter();
        writer.writeTabs();
        writer.sb.Append("list");
        writer.sb.Append(':');
        writer.sb.Append("List<ClientOfflineWorkData>");
        if (this.list != null)
        {
            SList <ClientOfflineWorkData> listT = this.list;
            int listLen = listT.size();
            writer.sb.Append('(');
            writer.sb.Append(listLen);
            writer.sb.Append(')');
            writer.writeEnter();
            writer.writeLeftBrace();
            for (int listI = 0; listI < listLen; ++listI)
            {
                ClientOfflineWorkData listV = listT.get(listI);
                writer.writeTabs();
                writer.sb.Append(listI);
                writer.sb.Append(':');
                if (listV != null)
                {
                    listV.writeDataString(writer);
                }
                else
                {
                    writer.sb.Append("ClientOfflineWorkData=null");
                }

                writer.writeEnter();
            }
            writer.writeRightBrace();
        }
        else
        {
            writer.sb.Append("=null");
        }

        writer.writeEnter();
        writer.writeTabs();
        writer.sb.Append("clientRandomSeedIndex");
        writer.sb.Append(':');
        writer.sb.Append(this.clientRandomSeedIndex);

        writer.writeEnter();
    }
Пример #6
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        if (!(data is ClientOfflineWorkListData))
        {
            return;
        }

        ClientOfflineWorkListData mData = (ClientOfflineWorkListData)data;

        this.index = mData.index;

        if (mData.list != null)
        {
            if (this.list != null)
            {
                this.list.clear();
                this.list.ensureCapacity(mData.list.size());
            }
            else
            {
                this.list = new SList <ClientOfflineWorkData>();
            }

            SList <ClientOfflineWorkData> listT = this.list;
            if (!mData.list.isEmpty())
            {
                ClientOfflineWorkData[] listVValues = mData.list.getValues();
                for (int listVI = 0, listVLen = mData.list.length(); listVI < listVLen; ++listVI)
                {
                    ClientOfflineWorkData listV = listVValues[listVI];
                    ClientOfflineWorkData listU;
                    if (listV != null)
                    {
                        listU = (ClientOfflineWorkData)listV.clone();
                    }
                    else
                    {
                        listU = null;
                        nullObjError("listU");
                    }

                    listT.add(listU);
                }
            }
        }
        else
        {
            this.list = null;
            nullObjError("list");
        }

        this.clientRandomSeedIndex = mData.clientRandomSeedIndex;
    }
Пример #7
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is ClientOfflineWorkData))
        {
            return;
        }

        ClientOfflineWorkData mData = (ClientOfflineWorkData)data;

        this.workIndex = mData.workIndex;
        this.workTime  = mData.workTime;
    }
Пример #8
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        stream.startReadObj();

        this.index = stream.readInt();

        int listLen = stream.readLen();

        if (this.list != null)
        {
            this.list.clear();
            this.list.ensureCapacity(listLen);
        }
        else
        {
            this.list = new SList <ClientOfflineWorkData>();
        }

        SList <ClientOfflineWorkData> listT = this.list;

        for (int listI = listLen - 1; listI >= 0; --listI)
        {
            ClientOfflineWorkData listV;
            BaseData listVT = stream.readDataFullNotNull();
            if (listVT != null)
            {
                if (listVT is ClientOfflineWorkData)
                {
                    listV = (ClientOfflineWorkData)listVT;
                }
                else
                {
                    listV = new ClientOfflineWorkData();
                    if (!(listVT.GetType().IsAssignableFrom(typeof(ClientOfflineWorkData))))
                    {
                        stream.throwTypeReadError(typeof(ClientOfflineWorkData), listVT.GetType());
                    }
                    listV.shadowCopy(listVT);
                }
            }
            else
            {
                listV = null;
            }

            listT.add(listV);
        }

        this.clientRandomSeedIndex = stream.readInt();

        stream.endReadObj();
    }
    /// <summary>
    /// 转文本输出
    /// </summary>
    protected override void toWriteDataString(DataWriter writer)
    {
        base.toWriteDataString(writer);

        writer.writeTabs();
        writer.sb.Append("records");
        writer.sb.Append(':');
        writer.sb.Append("List<ClientOfflineWorkData>");
        if (this.records != null)
        {
            SList <ClientOfflineWorkData> recordsT = this.records;
            int recordsLen = recordsT.size();
            writer.sb.Append('(');
            writer.sb.Append(recordsLen);
            writer.sb.Append(')');
            writer.writeEnter();
            writer.writeLeftBrace();
            for (int recordsI = 0; recordsI < recordsLen; ++recordsI)
            {
                ClientOfflineWorkData recordsV = recordsT.get(recordsI);
                writer.writeTabs();
                writer.sb.Append(recordsI);
                writer.sb.Append(':');
                if (recordsV != null)
                {
                    recordsV.writeDataString(writer);
                }
                else
                {
                    writer.sb.Append("ClientOfflineWorkData=null");
                }

                writer.writeEnter();
            }
            writer.writeRightBrace();
        }
        else
        {
            writer.sb.Append("=null");
        }

        writer.writeEnter();
        writer.writeTabs();
        writer.sb.Append("clientRandomSeedIndex");
        writer.sb.Append(':');
        writer.sb.Append(this.clientRandomSeedIndex);

        writer.writeEnter();
    }
Пример #10
0
    protected override void copyData()
    {
        base.copyData();
        ClientOfflineWorkData dataTemp = data;

        if (dataTemp != null)
        {
            this.data = (ClientOfflineWorkData)dataTemp.clone();
        }
        else
        {
            this.data = null;
            nullObjError("data");
        }
    }
Пример #11
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        ClientOfflineWorkData mData = (ClientOfflineWorkData)data;

        if (this.workIndex != mData.workIndex)
        {
            return(false);
        }

        if (this.workTime != mData.workTime)
        {
            return(false);
        }

        return(true);
    }
Пример #12
0
    /** 添加离线事务 */
    public void addOfflineWork(ClientOfflineWorkData data)
    {
        data.workIndex = ++_currentIndex;
        data.workTime  = DateControl.getTimeMillis();

        ThreadControl.addAssistFunc(() =>
        {
            _offlineWorkListData.index = data.workIndex;
            _offlineWorkListData.list.add(data);
        });

        //当前在线
        if (GameC.player.system.isOnline())
        {
            SendClientOfflineWorkRequest.create(data).send();
        }
    }
    /// <summary>
    /// 回池
    /// </summary>
    protected override void toRelease(DataPool pool)
    {
        base.toRelease(pool);

        if (this.records != null)
        {
            if (!this.records.isEmpty())
            {
                ClientOfflineWorkData[] recordsVValues = this.records.getValues();
                for (int recordsVI = 0, recordsVLen = this.records.length(); recordsVI < recordsVLen; ++recordsVI)
                {
                    ClientOfflineWorkData recordsV = recordsVValues[recordsVI];
                    recordsV.release(pool);
                    recordsV = null;
                    recordsVValues[recordsVI] = null;
                }
            }
            this.records.justClearSize();
        }
        this.clientRandomSeedIndex = 0;
    }
    protected override void copyData()
    {
        base.copyData();
        SList <ClientOfflineWorkData> recordsTemp = records;

        if (recordsTemp != null)
        {
            this.records = new SList <ClientOfflineWorkData>();
            SList <ClientOfflineWorkData> recordsT = this.records;
            if (!recordsTemp.isEmpty())
            {
                ClientOfflineWorkData[] recordsVValues = recordsTemp.getValues();
                for (int recordsVI = 0, recordsVLen = recordsTemp.length(); recordsVI < recordsVLen; ++recordsVI)
                {
                    ClientOfflineWorkData recordsV = recordsVValues[recordsVI];
                    ClientOfflineWorkData recordsU;
                    if (recordsV != null)
                    {
                        recordsU = (ClientOfflineWorkData)recordsV.clone();
                    }
                    else
                    {
                        recordsU = null;
                        nullObjError("recordsU");
                    }

                    recordsT.add(recordsU);
                }
            }
        }
        else
        {
            this.records = null;
            nullObjError("records");
        }
    }
Пример #15
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        ClientOfflineWorkListData mData = (ClientOfflineWorkListData)data;

        if (this.index != mData.index)
        {
            return(false);
        }

        if (mData.list != null)
        {
            if (this.list == null)
            {
                return(false);
            }
            if (this.list.size() != mData.list.size())
            {
                return(false);
            }
            SList <ClientOfflineWorkData> listT = this.list;
            SList <ClientOfflineWorkData> listR = mData.list;
            int listLen = listT.size();
            for (int listI = 0; listI < listLen; ++listI)
            {
                ClientOfflineWorkData listU = listT.get(listI);
                ClientOfflineWorkData listV = listR.get(listI);
                if (listV != null)
                {
                    if (listU == null)
                    {
                        return(false);
                    }
                    if (!listU.dataEquals(listV))
                    {
                        return(false);
                    }
                }
                else
                {
                    if (listU != null)
                    {
                        return(false);
                    }
                }
            }
        }
        else
        {
            if (this.list != null)
            {
                return(false);
            }
        }

        if (this.clientRandomSeedIndex != mData.clientRandomSeedIndex)
        {
            return(false);
        }

        return(true);
    }