public bool AddPublicCallbackHandler(string request, RequestProcessor.Callback callback) { if (!this.broadcastCallbacksHandlers_.ContainsKey(request)) { this.broadcastCallbacksHandlers_.TryAdd(request, callback); return(true); } return(false); }
private HasCallbackBeenRecieved AddCallback(JObject response, RequestProcessor.Callback callback) { HasCallbackBeenRecieved callbackRecieved = new HasCallbackBeenRecieved(); callbackRecieved.ResponseState = requestProcessor_.AddPrivateCallbackHandler(response, (JObject o) => { callback(o); callbackRecieved.SignalEvent.Set(); }); callbackRecieved.SetupAsyncSignal(); return(callbackRecieved); }
/// <summary> /// Sends json to the server /// </summary> /// <param name="obj">The Json object</param> /// <param name="callback">A callback function which will be called when a response is recived</param> /// <param name="broadcastCallback">if it's a broadcast callback it will return a HasCallbackBeenRecieved which will trigger when the broadcast is recived</param> /// <returns></returns> public HasCallbackBeenRecieved SendJson(JObject obj, RequestProcessor.Callback callback = null, bool broadcastCallback = false) { HasCallbackBeenRecieved state = new HasCallbackBeenRecieved(); JObject o = (JObject)obj.DeepClone(); if (client_.Connected) { o["signature"] = Guid.NewGuid().ToString(); NetworkStream ns = client_.GetStream(); if (broadcastCallback) { state = AddBroadcastCallback(o); } else if (callback != null) { state = AddCallback(o, callback); } byte[] bytes = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(o)); ns.Write(bytes, 0, bytes.Length); } return(state); }
public bool AddBroadcastCallbackHandler(string request, RequestProcessor.Callback callback) { return(requestProcessor_.AddPublicCallbackHandler(request, callback)); }