public GatewayStream(IServerStream serverStream, IManagedDataHandler[] handlers) { _disposed = false; _handlers = handlers; _serverStream = serverStream; _serverStream.ProcessRequest += Read; //dataMarker + dataSize }
/// <summary> /// Gets output stream. /// </summary> protected override Stream GetOutputStream(IXmlRpcStreamRequestConfig config, IServerStream serverStream) { if (config.EnabledForExtensions && config.GzipRequesting) { SetResponseHeader(serverStream, HttpHelper.ContentEncodingHeader, "gzip"); } return(base.GetOutputStream(config, serverStream)); }
/// <summary> /// Gets output stream. /// </summary> protected virtual Stream GetOutputStream(IXmlRpcStreamRequestConfig config, IServerStream serverStream) { Stream outputStream = serverStream.OutputStream; if (config.EnabledForExtensions && config.GzipRequesting) return new GZipStream(outputStream, CompressionMode.Compress); else return outputStream; }
/// <summary> /// Gets input stream. /// </summary> protected virtual Stream GetInputStream(IXmlRpcStreamRequestConfig config, IServerStream serverStream) { Stream inputStream = serverStream.InputStream; if (config.EnabledForExtensions && config.GzipCompressing) return new GZipStream(inputStream, CompressionMode.Decompress); else return inputStream; }
public void Run(IServerStream serverStream) { lock (_streamLock) { if (_serverStream == null) { _serverStream = serverStream; _serverStream.ProcessRequest += OnProcessRequest; } } }
/// <summary> /// Gets output stream. /// </summary> protected virtual Stream GetOutputStream(IXmlRpcStreamRequestConfig config, IServerStream serverStream) { Stream outputStream = serverStream.OutputStream; if (config.EnabledForExtensions && config.GzipRequesting) { return(new GZipStream(outputStream, CompressionMode.Compress)); } else { return(outputStream); } }
/// <summary> /// Gets input stream. /// </summary> protected virtual Stream GetInputStream(IXmlRpcStreamRequestConfig config, IServerStream serverStream) { Stream inputStream = serverStream.InputStream; if (config.EnabledForExtensions && config.GzipCompressing) { return(new GZipStream(inputStream, CompressionMode.Decompress)); } else { return(inputStream); } }
public void Start() { lock (_streams) { for (int i = 0; i < _gatewaySettings.StreamsCount; i++) { IServerStream serverStream = _streamFactory.CreateDataStream(); GatewayStream gatewayStream = new GatewayStream(serverStream, _handlers); _streams.Add(gatewayStream); gatewayStream.Start(); } } }
protected override void RunInternal() { _frameworks = new FrameworkCollection(Catalog.Frameworks, ExportLoader); _profilingTypes = new ProfilingTypeCollection(Catalog.ProfilingTypes, ExportLoader); _profilingTargets = new ProfilingTargetCollection(Catalog.ProfilingTargets, ExportLoader); _configurations = new ConfigurationCollection(_profilingTargets, _frameworks, this); _sessions = new SessionCollection(this); _requestServer = new RequestServer(); _requestServer.RegisterHandler(new StartProfilingSessionRequestHandler( _configurations, _sessions, _frameworks, _profilingTypes, _profilingTargets)); //TODO: Host must listen all possible types of streams (NamePipes, SharedMemory, RPC) _ //TODO: _ because agents may use different transports, depending on apps they profile IServerStream serverStream = Connector.Native.StreamFactory.CreateInvokeStream(); _requestServer.Run(serverStream); ServiceContainer.Register(new Remote.IO.FileSystemAccessor(true)); }
/// <summary> /// Executes requests from streams. /// </summary> /// <param name="config"></param> /// <param name="serverStream">the <see cref="IServerStream"/> to process</param> public void Execute(IXmlRpcStreamRequestConfig config, IServerStream serverStream) { Stream inputStream; XmlRpcResponse response = new XmlRpcResponse(); try { inputStream = GetInputStream(config, serverStream); IXmlRpcRequest request = GetRequest(config, inputStream); response.Result = Execute(request); } catch (XmlRpcException ex) { response.Fault = ex.Fault; } catch (Exception ex) { response.Fault = new XmlRpcFault(0, ex.Message, ex); } Stream outputStream = GetOutputStream(config, serverStream); WriteResponse(config, outputStream, response); }
private void SetResponseHeader(IServerStream serverStream, String header, String value) { ((HttpStream)serverStream).Response.AppendHeader(header, value); }
/// <summary> /// Gets output stream. /// </summary> protected override Stream GetOutputStream(IXmlRpcStreamRequestConfig config, IServerStream serverStream) { if (config.EnabledForExtensions && config.GzipRequesting) SetResponseHeader(serverStream, HttpHelper.ContentEncodingHeader, "gzip"); return base.GetOutputStream(config, serverStream); }