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); }
/*--------------------------------------------------------------------------------------------*/ public IDataAccess AddQuery(IWeaverScript pWeaverScript, bool pCache = false) { RequestCmd rc = vReq.AddQuery(pWeaverScript); CacheQueryScript(pCache, rc); OnCmd(rc); return(this); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ 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); }
/*--------------------------------------------------------------------------------------------*/ 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); }
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"); }
/*--------------------------------------------------------------------------------------------*/ 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" }; }
/*--------------------------------------------------------------------------------------------*/ 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); }
/*--------------------------------------------------------------------------------------------*/ 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); }); }
/// <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)); }
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"); }
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); }
/*--------------------------------------------------------------------------------------------*/ 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)); }
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); }
public Command(RequestCmd request) { Request = request; }
/*--------------------------------------------------------------------------------------------*/ 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."); }
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); }