private void DoLoadReply(NLRep_Load msg, PBChannel channel, int src, uint session) { string timeoutKey = string.Format("{0}:{1}", msg.DsMsgId, msg.Key); LoadCBBox cbbox = loadOpt_timeout_.Get(timeoutKey); if (null != cbbox) { DSLoadResult loadRet = DSLoadResult.UnknownError; string errorStr = "Save Unknown Error"; IMessage data = null; if (msg.Result == NLRep_Load.Types.LoadResult.Success) { loadRet = DSLoadResult.Success; data = channel_.Decode(ByteString.Unsafe.GetBuffer(msg.Data)); errorStr = "Load Success"; loadOpt_timeout_.Remove(timeoutKey); } else if (msg.Result == NLRep_Load.Types.LoadResult.Undone) { loadRet = DSLoadResult.Undone; data = channel_.Decode(ByteString.Unsafe.GetBuffer(msg.Data)); errorStr = "Load Undone"; } else if (msg.Result == NLRep_Load.Types.LoadResult.NotFound) { loadRet = DSLoadResult.NotFound; if (msg.HasError) { errorStr = msg.Error.ToString(); } else { errorStr = "Load Key NOT Found in DataStore"; } loadOpt_timeout_.Remove(timeoutKey); } else { loadRet = DSLoadResult.PostError; if (msg.HasError) { errorStr = msg.Error.ToString(); } else { errorStr = "Load data error"; } loadOpt_timeout_.Remove(timeoutKey); } cbbox.Invoke(loadRet, errorStr, data); //LogSys.Log(LOG_TYPE.DEBUG, "Load Reply ! result:({0}) session:({1}) error:({2})", loadRet, session, errorStr); } }
public void Invoke(DSLoadResult ret, string error, IMessage data) { cb_(ret, error, (T)data); }