public FromProto ( TableMailInfo proto ) : void | ||
proto | TableMailInfo | |
return | void |
private void InitMailData() { if (m_MailInitStatus == DataInitStatus.Unload) { if (UserServerConfig.DataStoreAvailable == true) { m_MailInitStatus = DataInitStatus.Loading; Msg_LD_Load msg = new Msg_LD_Load(); msg.MsgId = (int)DataEnum.TableMailInfo; GameFrameworkMessage.Msg_LD_SingleLoadRequest slr = new GameFrameworkMessage.Msg_LD_SingleLoadRequest(); slr.MsgId = (int)GameFrameworkData.DataEnum.TableMailInfo; slr.LoadType = GameFrameworkMessage.Msg_LD_SingleLoadRequest.LoadTypeEnum.LoadAll; slr.Keys.Clear(); msg.LoadRequests.Add(slr); RequestLoad(msg, ((ret) => { if (ret.ErrorNo == Msg_DL_LoadResult.ErrorNoEnum.Success) { List <TableMailInfoWrap> mailList = new List <TableMailInfoWrap>(); foreach (var singlerow in ret.Results) { object _msg; if (DbDataSerializer.Decode(singlerow.Data, DataEnum2Type.Query(slr.MsgId), out _msg)) { TableMailInfo dataMail = _msg as TableMailInfo; if (null != dataMail) { TableMailInfoWrap mailInfo = new TableMailInfoWrap(); mailInfo.FromProto(dataMail); List <int> itemIds = Converter.ConvertNumericList <int>(dataMail.ItemIds); List <int> itemNums = Converter.ConvertNumericList <int>(dataMail.ItemNumbers); for (int i = 0; i < itemIds.Count && i < itemNums.Count; ++i) { var item = new MailItem(); item.m_ItemId = itemIds[i]; item.m_ItemNum = itemNums[i]; mailInfo.m_Items.Add(item); } mailList.Add(mailInfo); } } } UserServer.Instance.GlobalProcessThread.InitMailData(mailList); m_MailInitStatus = DataInitStatus.Done; LogSys.Log(LOG_TYPE.INFO, ConsoleColor.Green, "Load DataCache global data success. Table:TableMailInfo"); } else if (ret.ErrorNo == Msg_DL_LoadResult.ErrorNoEnum.NotFound) { //暂时初始化为空列表 List <TableMailInfoWrap> mailList = new List <TableMailInfoWrap>(); UserServer.Instance.GlobalProcessThread.InitMailData(mailList); m_MailInitStatus = DataInitStatus.Done; LogSys.Log(LOG_TYPE.INFO, ConsoleColor.Green, "Load DataCache global data success. Table:TableMailInfo (empty)"); } else { m_MailInitStatus = DataInitStatus.Unload; LogSys.Log(LOG_TYPE.ERROR, ConsoleColor.Red, "Load DataCache global data failed. Table: {0}", "TableMailInfo"); } } )); } else { m_MailInitStatus = DataInitStatus.Done; LogSys.Log(LOG_TYPE.INFO, "init mail done!"); } } }