public async Task Commit_async(AnsonMsg req, OnOk onOk, OnError onErr = null) { HttpServClient httpClient = new HttpServClient(); AnsonMsg msg = await httpClient.Post(AnClient.ServUrl((Port)req.port), req); MsgCode code = msg.code; if (AnClient.console) { System.Console.Out.WriteLine(msg.ToString()); } if (MsgCode.ok == code.code) { onOk.ok((AnsonResp)msg.Body(0)); } else { if (onErr != null) { onErr.err(code, ((AnsonResp)msg.Body(0)).Msg()); } else { System.Console.Error.WriteLine("code: {0}\nerror: {1}", code, msg.ToString()); } } }
/// <summary> /// Submit transaction requist to jserv. This method is synchronized - not returned until callbacks been called. /// </summary> /// <param name="req"></param> /// <param name="onOk"></param> /// <param name="onErr"></param> public void CommitAsync(AnsonMsg req, OnOk onOk, OnError onErr = null, CancellationTokenSource waker = null) { Task t = Task.Run(async delegate { try { HttpServClient httpClient = new HttpServClient(); AnsonMsg msg = await httpClient.Post(AnClient.ServUrl((Port)req.port), req); MsgCode code = msg.code; if (MsgCode.ok == code.code) { onOk.ok((AnsonResp)msg.Body(0)); } else { if (onErr != null) { onErr.err(code, ((AnsonResp)msg.Body(0)).Msg()); } else { Debug.WriteLine("Error: code: {0}\nerror: {1}", code, msg.ToString()); } } } catch (Exception _) { } finally { if (waker != null) { waker.Cancel(); } } }); }
public string download(string uri, IPort port, DocsReq body, string localpath, string[] act = null) { if (port == null) { throw new AnsonException("AnsonMsg<DocsReq> needs port explicitly specified."); } // let header = Protocol.formatHeader(this.ssInf); body.Uri(uri); if (act != null && act.Length > 0) { header.act(act); } AnsonMsg msg = new AnsonMsg(port.name) .Header(header) .Body(body, uri); if (AnClient.verbose) { Utils.Logi(msg.ToString()); } HttpServClient httpClient = new HttpServClient(); return(httpClient.streamdown(AnClient.ServUrl(port), msg, localpath)); }
internal async Task Login(OnLogin login = null) { await AnClient.Login(uid, pswd, "device.c#", login == null?new OnTestLogin() : login); if (!succeed) { Assert.Fail("Failed: onOk not called."); } Assert.IsNotNull(client); }
public AnsonResp Commit(AnsonMsg req, ErrorCtx err = null) { HttpServClient httpClient = new HttpServClient(); Task <AnsonMsg> tmsg = httpClient.Post(AnClient.ServUrl((Port)req.port), req); tmsg.Wait(); AnsonMsg msg = tmsg.Result; MsgCode code = msg.code; if (MsgCode.ok != code.code) { if (err != null) { err.onError(code, ((AnsonResp)msg.Body(0)).Msg()); } else { Debug.WriteLine("Error: code: {0}\nerror: {1}", code, msg.ToString()); } } return((AnsonResp)msg.Body(0)); }
static ClientsTests() { AnClient.Init(jserv); }