Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 public void Invoke(DSLoadResult ret, string error, IMessage data)
 {
     cb_(ret, error, (T)data);
 }