public EventSignal<IResponse> PostAsync(string url, Action<IRequest> prepareRequest, Dictionary<string, string> postData) { var returnSignal = new EventSignal<IResponse>(); var signal = HttpHelper.PostAsync(url, request => prepareRequest(new HttpWebRequestWrapper(request)), postData); signal.Finished += (sender, e) => returnSignal.OnFinish(new HttpWebResponseWrapper(e.Result.Result) { Exception = e.Result.Exception, IsFaulted = e.Result.IsFaulted }); return returnSignal; }
public void RegisterEvent(string eventName, Action handler) { if (!DicEvent.TryGetValue(eventName, out EventEntity eventEntity)) { eventEntity = new EventSignal(); DicEvent.Add(eventName, eventEntity); } ((EventSignal)eventEntity).Subscribe(handler); }
public static void ReadAsync(EventSignal <CallbackDetail <int> > signal, Stream stream, byte[] buffer) { var _state = new StreamState { Stream = stream, Response = signal, Buffer = buffer }; ReadAsyncInternal(_state); }
public static EventSignal<CallbackDetail<HttpWebResponse>> GetAsync(string url, Action<HttpWebRequest> requestPreparer) { var _request = (HttpWebRequest)HttpWebRequest.Create(url); if (requestPreparer != null) { requestPreparer(_request); } var signal = new EventSignal<CallbackDetail<HttpWebResponse>>(); GetResponseAsync(_request, signal); return signal; }
public static void ReadAsync(EventSignal<CallbackDetail<int>> signal, Stream stream, byte[] buffer) { var _state = new StreamState { Stream = stream, Response = signal, Buffer = buffer }; ReadAsyncInternal(_state); }
public EventSignal<IResponse> GetAsync(string url, Action<IRequest> prepareRequest) { var _returnSignal = new EventSignal<IResponse>(); var _signal = HttpHelper.GetAsync(url, request => prepareRequest(new HttpWebRequestWrapper(request))); _signal.Finished += (sender, e) => _returnSignal.OnFinish(new HttpWebResponseWrapper(e.Result.Result) { Exception = e.Result.Exception, IsFaulted = e.Result.IsFaulted }); return _returnSignal; }
public static EventSignal <CallbackDetail <HttpWebResponse> > GetAsync(string url, Action <HttpWebRequest> requestPreparer) { var _request = (HttpWebRequest)HttpWebRequest.Create(url); if (requestPreparer != null) { requestPreparer(_request); } var signal = new EventSignal <CallbackDetail <HttpWebResponse> >(); GetResponseAsync(_request, signal); return(signal); }
public EventSignal <IResponse> GetAsync(string url, Action <IRequest> prepareRequest) { var _returnSignal = new EventSignal <IResponse>(); var _signal = HttpHelper.GetAsync(url, request => prepareRequest(new HttpWebRequestWrapper(request))); _signal.Finished += (sender, e) => _returnSignal.OnFinish(new HttpWebResponseWrapper(e.Result.Result) { Exception = e.Result.Exception, IsFaulted = e.Result.IsFaulted }); return(_returnSignal); }
public static EventSignal <CallbackDetail <HttpWebResponse> > GetAsync(string url, Action <HttpWebRequest> requestPreparer) { var _request = (HttpWebRequest)HttpWebRequest.Create(url); ServicePointManager.ServerCertificateValidationCallback = MyRemoteCertificateValidationCallback; if (requestPreparer != null) { requestPreparer(_request); } var signal = new EventSignal <CallbackDetail <HttpWebResponse> >(); GetResponseAsync(_request, signal); return(signal); }
private static EventSignal <CallbackDetail <HttpWebResponse> > PostInternal( string url, Action <HttpWebRequest> requestPreparer, IDictionary <string, string> postData) { var _request = (HttpWebRequest)HttpWebRequest.Create(url); if (requestPreparer != null) { requestPreparer(_request); } var buffer = ProcessPostData(postData); _request.Method = "POST"; _request.ContentType = "application/x-www-form-urlencoded"; // Set the content length if the buffer is non-null _request.ContentLength = buffer != null ? buffer.LongLength : 0; EventSignal <CallbackDetail <HttpWebResponse> > _signal = new EventSignal <CallbackDetail <HttpWebResponse> >(); if (buffer == null) { // If there's nothing to be written to the request then just get the response GetResponseAsync(_request, _signal); return(_signal); } RequestState _requestState = new RequestState { PostData = buffer, Request = _request, Response = _signal }; try { _request.BeginGetRequestStream(GetRequestStreamCallback, _requestState); } catch (Exception ex) { _signal.OnFinish(new CallbackDetail <HttpWebResponse> { IsFaulted = true, Exception = ex }); } return(_signal); }
public void RegisterEvent <T, V, A, B>(string eventName, Action <T, V, A, B> handler) { if (!DicEvent.TryGetValue(eventName, out EventEntity eventEntity)) { eventEntity = new EventSignal <T, V, A, B>(); DicEvent.Add(eventName, eventEntity); } if (eventEntity is EventSignal <T, V, A, B> t) { t.Subscribe(handler); } else { Debug.LogError($"{eventName} 对应的类型错误 :{handler.GetType().FullName} "); } }
private void ReadLoop() { if (!Reading) return; var _buffer = new byte[1024]; var _signal = new EventSignal<CallbackDetail<int>>(); _signal.Finished += (sender, e) => { if (e.Result.IsFaulted) { Exception exception = e.Result.Exception.GetBaseException(); if (!HttpBasedTransport.IsRequestAborted(exception)) { if (!(exception is IOException)) m_connection.OnError(exception); StopReading(true); } return; } int _read = e.Result.Result; if (_read > 0) // Put chunks in the buffer m_buffer.Add(_buffer, _read); if (_read == 0) { // Stop any reading we're doing StopReading(true); return; } // Keep reading the next set of data ReadLoop(); if (_read <= _buffer.Length) // If we read less than we wanted or if we filled the buffer, process it ProcessBuffer(); }; StreamExtensions.ReadAsync(_signal, m_stream, _buffer); }
public static void GetResponseAsync(HttpWebRequest request, EventSignal<CallbackDetail<HttpWebResponse>> signal) { try { request.BeginGetResponse( GetResponseCallback, new RequestState { Request = request, PostData = new byte[] { }, Response = signal }); } catch (Exception ex) { signal.OnFinish(new CallbackDetail<HttpWebResponse> { Exception = ex, IsFaulted = true }); } }
private static EventSignal<CallbackDetail<HttpWebResponse>> PostInternal( string url, Action<HttpWebRequest> requestPreparer, IDictionary<string, string> postData) { var _request = (HttpWebRequest)HttpWebRequest.Create(url); if (requestPreparer != null) requestPreparer(_request); var buffer = ProcessPostData(postData); _request.Method = "POST"; _request.ContentType = "application/x-www-form-urlencoded"; // Set the content length if the buffer is non-null _request.ContentLength = buffer != null ? buffer.LongLength : 0; EventSignal<CallbackDetail<HttpWebResponse>> _signal = new EventSignal<CallbackDetail<HttpWebResponse>>(); if (buffer == null) { // If there's nothing to be written to the request then just get the response GetResponseAsync(_request, _signal); return _signal; } RequestState _requestState = new RequestState { PostData = buffer, Request = _request, Response = _signal }; try { _request.BeginGetRequestStream(GetRequestStreamCallback, _requestState); } catch (Exception ex) { _signal.OnFinish(new CallbackDetail<HttpWebResponse> { IsFaulted = true, Exception = ex }); } return _signal; }
public static void GetResponseAsync(HttpWebRequest request, EventSignal <CallbackDetail <HttpWebResponse> > signal) { try { request.BeginGetResponse( GetResponseCallback, new RequestState { Request = request, PostData = new byte[] { }, Response = signal }); } catch (Exception ex) { signal.OnFinish(new CallbackDetail <HttpWebResponse> { Exception = ex, IsFaulted = true }); } }
public static void run(EventSignal signal, params string[] args) { var runner = new AgentRunner(signal, new AgentContext(SystemEventWriter.Log), args); runner.Exec(); }
AgentRunner(EventSignal signal, AgentContext context, string[] args) { Signal = signal; AgentContext = context; Control = Agents.control(context); }