示例#1
0
        public static TProtocol CreateReadProtocol(Stream inputStream)
        {
            var trans = new TStreamClientTransport(inputStream, null);
            var proto = new TBinaryProtocol(trans);

            return(proto);
        }
示例#2
0
        public static TProtocol CreateWriteProtocol(Stream inputStream, Stream outputStream)
        {
            var trans = new TStreamClientTransport(inputStream, outputStream);
            var proto = new TBinaryProtocol(trans);

            return(proto);
        }
示例#3
0
        public ThriftStream(Stream s)
        {
            _s = s;
            TClientTransport transport = new TStreamClientTransport(s, s);

            _protocol = new TCompactProtocol(transport);
        }
示例#4
0
        private static Tuple <Stream, TProtocol> GetProtocolInstance(Type protocolType)
        {
            var memoryStream          = new MemoryStream();
            var streamClientTransport = new TStreamClientTransport(memoryStream, memoryStream);
            var protocol = (TProtocol)Activator.CreateInstance(protocolType, streamClientTransport);

            return(new Tuple <Stream, TProtocol>(memoryStream, protocol));
        }
        public async Task ProcessRequestAsync(HttpContext context, CancellationToken cancellationToken)
        {
            var transport = new TStreamClientTransport(context.Request.Body, context.Response.Body);

            try
            {
                var input  = InputProtocolFactory.GetProtocol(transport);
                var output = OutputProtocolFactory.GetProtocol(transport);

                while (await Processor.ProcessAsync(input, output, cancellationToken))
                {
                }
            }
            catch (TTransportException)
            {
                // Client died, just move on
            }
            finally
            {
                transport.Close();
            }
        }