private void CallService(ICollection <ServiceDelegate> list) { foreach (ServiceDelegate service in list) { if (service != null) { try { service(); } catch (Exception ex) { ErrorRecorderHolder.recordError(ex); } } } }
private void StopServiceThread() { lock (service_locker) { if (service_locker.Status == 1) { try { this._serviceEvent.Set(); } catch (Exception ex) { ErrorRecorderHolder.recordError(ex); } service_locker.Status = 0; } } }
private void PushService(string name, IDictionary <string, object> data) { lock (self_locker) { if (this._actionDict.ContainsKey(name)) { Action <IDictionary <string, object> > action = this._actionDict[name]; try { if (action != null) { action(data); } } catch (Exception ex) { ErrorRecorderHolder.recordError(ex); } } } }
public void AddQuest(FPClient client, FPData data, IDictionary <string, object> payload, CallbackDelegate callback, int timeout) { if (data == null) { if (callback != null) { callback(new CallbackData(new Exception("data is null!"))); } return; } this.AddService(() => { if (client != null) { byte[] bytes = new byte[0]; try { using (MemoryStream outputStream = new MemoryStream()) { MsgPack.Serialize(payload, outputStream); outputStream.Seek(0, SeekOrigin.Begin); bytes = outputStream.ToArray(); } } catch (Exception ex) { ErrorRecorderHolder.recordError(ex); if (callback != null) { callback(new CallbackData(ex)); } return; } data.SetPayload(bytes); client.SendQuest(data, callback, timeout); } }); }
public void Service(FPData data, AnswerDelegate answer) { if (data == null) { return; } bool callCb = true; if (RTMConfig.KICKOUT == data.GetMethod()) { callCb = false; } if (RTMConfig.SERVER_PUSH.kickOutRoom == data.GetMethod()) { callCb = false; } IDictionary <string, object> payload = null; if (data.GetFlag() == 0 && data.JsonPayload() != null) { try { if (callCb && answer != null) { answer(JSON_PAYLOAD, false); } payload = Json.Deserialize <IDictionary <string, object> >(data.JsonPayload()); } catch (Exception ex) { ErrorRecorderHolder.recordError(ex); } } if (data.GetFlag() == 1 && data.MsgpackPayload() != null) { try { if (callCb && answer != null) { answer(MSGPACK_PAYLOAD, false); } using (MemoryStream inputStream = new MemoryStream(data.MsgpackPayload())) { payload = MsgPackFix.Deserialize <IDictionary <string, object> >(inputStream, RTMRegistration.RTMEncoding); } } catch (Exception ex) { ErrorRecorderHolder.recordError(ex); } } if (payload != null) { try { MethodInfo method = this._type.GetMethod(data.GetMethod()); if (method != null) { object[] paras = new object[] { payload }; method.Invoke(this, paras); } } catch (Exception ex) { ErrorRecorderHolder.recordError(ex); } } }