/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { base.toRelease(pool); this.data.release(pool); this.data = null; }
/// <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(); }
/// <summary> /// 创建实例 /// </summary> public static SendClientOfflineWorkRequest create(ClientOfflineWorkData data) { SendClientOfflineWorkRequest re = (SendClientOfflineWorkRequest)BytesControl.createRequest(dataID); re.data = data; return(re); }
/// <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(); }
/// <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; }
/// <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; }
/// <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(); }
protected override void copyData() { base.copyData(); ClientOfflineWorkData dataTemp = data; if (dataTemp != null) { this.data = (ClientOfflineWorkData)dataTemp.clone(); } else { this.data = null; nullObjError("data"); } }
/// <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); }
/** 添加离线事务 */ 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"); } }
/// <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); }