protected void BeginGetResponseAsyncCallback(IAsyncResult ar) { if (ar.IsCompleted) { string outString = string.Empty; PendingJob job = ar.AsyncState as PendingJob; if (job == null) { return; } lock (Jobs) { Jobs.Remove(job); } JsonMessageResponceArgs args = new JsonMessageResponceArgs(); args.RequestMessage = job.Request; args.Token = job.MessagToken; var resp = job.Requester.EndGetResponse(ar); var os = resp.GetResponseStream(); var sr = new StreamReader(os); outString = sr.ReadToEnd(); sr.Close(); os.Close(); args.ResponceMessage = MessageProcessor.ParseMessage(outString); job.CallResponce(args); } }
public void SendMessage(JsonMessage request, object token, EventHandler <JsonMessageResponceArgs> handler) { byte[] buffer = System.Text.Encoding.UTF8.GetBytes(MessageProcessor.PackMessage(request)); PendingJob job = new PendingJob(); job.MessagToken = token; job.Request = request; job.Requester = WebRequest.Create(BaseURL); job.Requester.ContentType = "application/json"; job.Requester.Method = "POST"; job.Requester.ContentLength = buffer.Length; if (handler != null) { job.ResponceCallback += handler; } var stream = job.Requester.GetRequestStream(); stream.Write(buffer, 0, buffer.Length); stream.Close(); // job. lock (Jobs) { Jobs.Add(job); job.AsyncResult = job.Requester.BeginGetResponse(BeginGetResponseAsyncCallback, job); } }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PendingJob obj) { return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr; }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PendingJob obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }
public void utilAddPendingJob(PendingJob job) { pjsua2PINVOKE.Endpoint_utilAddPendingJob(swigCPtr, PendingJob.getCPtr(job)); }