Example #1
0
            public void DoWork()
            {
                TTransport inputTransport  = null;
                TTransport outputTransport = null;
                TProtocol  inputProtocol   = null;
                TProtocol  outputProtocol  = null;

                try
                {
                    inputTransport  = parent.inputTransportFactory.GetTransport(client);
                    outputTransport = parent.outputTransportFactory.GetTransport(client);
                    inputProtocol   = parent.inputProtocolFactory.GetProtocol(inputTransport);
                    outputProtocol  = parent.outputProtocolFactory.GetProtocol(outputTransport);
                    while (parent.processor.Process(inputProtocol, outputProtocol))
                    {
                        //keep processing requests until client disconnects
                    }
                }
                catch (TTransportException)
                {
                }
                catch (Exception x)
                {
                    parent.logDelegate("Error: " + x);
                }

                if (inputTransport != null)
                {
                    inputTransport.Close();
                }
                if (outputTransport != null)
                {
                    outputTransport.Close();
                }

                lock (parent.clientLock)
                {
                    parent.clientThreads.Remove(Thread.CurrentThread);
                }
                return;
            }