Exemple #1
0
    private void send(UInt32 requestid, RequestCmd cmd)
    {
        var packet = Packet.BuildPacket(cmd, ++sequenceId, requestid, 0, false, m_tcpWorker.EnableCrypto);
        var bytes  = packet.Build(m_tcpWorker.Encoder);

        m_tcpWorker.Send(bytes);
    }
Exemple #2
0
        /*--------------------------------------------------------------------------------------------*/
        public IDataAccess AddQuery(IWeaverScript pWeaverScript, bool pCache = false)
        {
            RequestCmd rc = vReq.AddQuery(pWeaverScript);

            CacheQueryScript(pCache, rc);
            OnCmd(rc);
            return(this);
        }
Exemple #3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public RequestCmd AddQuery(string pScript, IDictionary <string, IWeaverQueryVal> pParams)
        {
            string[] args = WeaverUtil.GetScriptAndParamJson(pScript, pParams);

            RequestCmd rc = new RequestCmd(RexConn.Command.Query.ToString().ToLower(), args);

            CmdList.Add(rc);
            return(rc);
        }
Exemple #4
0
        /*--------------------------------------------------------------------------------------------*/
        public IDataAccess AddQuery(string pScript, IDictionary <string, IWeaverQueryVal> pParams,
                                    bool pCache = false)
        {
            RequestCmd rc = vReq.AddQuery(pScript, pParams);

            CacheQueryScript(pCache, rc);
            OnCmd(rc);
            return(this);
        }
Exemple #5
0
        public void AddQueryNoParams(bool pNullParams)
        {
            var param = (pNullParams ? null : new Dictionary <string, IWeaverQueryVal>());

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery("g", param);

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", "g");
        }
Exemple #6
0
        /*--------------------------------------------------------------------------------------------*/
        private void CacheQueryScript(bool pCache, RequestCmd pCmd)
        {
            if (!pCache)
            {
                return;
            }

            string par = (pCmd.Args.Count > 1 ? pCmd.Args[1] : null);

            pCmd.Args = new[] { pCmd.Args[0], par, "1" };
        }
Exemple #7
0
        /*--------------------------------------------------------------------------------------------*/
        public IDataAccess AddQueries(IWeaverTransaction pTx, bool pCache = false)
        {
            foreach (IWeaverQuery q in pTx.Queries)
            {
                RequestCmd rc = vReq.AddQuery(q);
                CacheQueryScript(pCache, rc);
                OnCmd(rc);
            }

            return(this);
        }
Exemple #8
0
        /*--------------------------------------------------------------------------------------------*/
        public IDataAccess AddQueries(IEnumerable <IWeaverScript> pWeaverScripts, bool pCache = false)
        {
            foreach (IWeaverScript ws in pWeaverScripts)
            {
                RequestCmd rc = vReq.AddQuery(ws);
                CacheQueryScript(pCache, rc);
                OnCmd(rc);
            }

            return(this);
        }
 public void Request <T>(RequestCmd cmd, Action <string, T> handler) where T : ICommand
 {
     mClient.request(cmd, (string err, Response resp) =>
     {
         ICommand response = resp;
         if (resp != null && typeof(T) != typeof(Response))
         {
             response = resp.Parse <T>();
         }
         handler(err, (T)response);
     });
 }
Exemple #10
0
        /// <summary>
        /// 获取指令名称
        /// </summary>
        /// <param name="json">json原始数据</param>
        /// <returns></returns>
        private bool TryGetCmd(string json, out RequestCmd cmd)
        {
            var jObj = JObject.Parse(json);

            var cmdNode = jObj["cmd"];

            // 未找到节点
            if (cmdNode == null)
            {
                cmd = default;
                return(false);
            }

            return(Enum.TryParse <RequestCmd>(cmdNode.ToString(), out cmd));
        }
Exemple #11
0
        public void AddQueryWeaverScriptNoParams(bool pNullParams)
        {
            var param = (pNullParams ? null : new Dictionary <string, IWeaverQueryVal>());

            var mockScr = new Mock <IWeaverScript>();

            mockScr.SetupGet(x => x.Script).Returns("x");
            mockScr.SetupGet(x => x.Params).Returns(param);

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery(mockScr.Object);

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", "x");
        }
Exemple #12
0
        public void AddQuery()
        {
            const string script = "g.V('ItemId',P0).outE(P1);";
            var          param  = new Dictionary <string, IWeaverQueryVal>();

            param.Add("P0", new WeaverQueryVal("id"));
            param.Add("P1", new WeaverQueryVal("uses"));

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery(script, param);

            const string expectScript    = script;
            const string expectParamJson = "{\"P0\":\"id\",\"P1\":\"uses\"}";

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", expectScript, expectParamJson);
        }
Exemple #13
0
        /*--------------------------------------------------------------------------------------------*/
        private void OnCmd(RequestCmd pCmd)
        {
            vLatestCmd = pCmd;

            if (vSetCmdIds)
            {
                vLatestCmd.CmdId = vCmdIndex + "";
            }

            if (vOmitCmdTimers)
            {
                vLatestCmd.EnableOption(RequestCmd.Option.OmitTimer);
            }

            vCmdIndex++;

            //Log.Debug(vApiCtx.ContextId, "CMD", vLatestCmd.CmdId+": "+vLatestCmd.Cmd+" => "+
            //	string.Join(" // ", vLatestCmd.Args));
        }
Exemple #14
0
        public void AddQueryWeaverScript()
        {
            const string script = "g.V('ItemId',P0).outE(P1);";
            var          param  = new Dictionary <string, IWeaverQueryVal>();

            param.Add("P0", new WeaverQueryVal("id"));
            param.Add("P1", new WeaverQueryVal("uses"));

            var mockScr = new Mock <IWeaverScript>();

            mockScr.SetupGet(x => x.Script).Returns(script);
            mockScr.SetupGet(x => x.Params).Returns(param);

            var        r   = new WeaverRequest();
            RequestCmd cmd = r.AddQuery(mockScr.Object);

            const string expectScript    = script;
            const string expectParamJson = "{\"P0\":\"id\",\"P1\":\"uses\"}";

            AssertCmdList(r, 1);
            AssertCmd(cmd, "query", expectScript, expectParamJson);
        }
Exemple #15
0
 public Command(RequestCmd request)
 {
     Request = request;
 }
Exemple #16
0
 /*--------------------------------------------------------------------------------------------*/
 private void AssertCmd(RequestCmd pCmd, string pCmdText, params string[] pArgs)
 {
     Assert.AreEqual(pCmdText, pCmd.Cmd, "Incorrect Cmd.");
     Assert.NotNull(pCmd.Args, "Cmd.Args should be filled.");
     Assert.AreEqual(pArgs, pCmd.Args, "Incorrect Args.");
 }
Exemple #17
0
 public void request(RequestCmd msg, Action <string, Response> action)
 {
     this.mEventManager.AddCallBack(requestId, action);
     send(requestId, msg);
     requestId++;
 }
 public void Request(RequestCmd cmd, Action <string, Response> handler)
 {
     mClient.request(cmd, handler);
 }