-
Ge Jun authored
1. Add ThriftStub to send and receive native thrift messages & specify method-name directly. As a result, ThriftMessage<T> is removed. 2. ThriftFramedMessage (no matter Cast<>-ed or not) can be sent/received as well so that building proxies of thrift is much easier. 3. ThriftFramedMessage::Cast<T> can be called multiple times with reasonable behaviors, even if T is changed. 4. Server-side errors are sent to client as TApplicationException instead of closing the connection. 5. Code in ThriftService::ProcessThriftFramedRequest() can throw exceptions which will be sent to client as errors as well. 6. Simplify ThriftClosure which does not need many stuffs inherited from NsheadClosure. 7. Port protocol-related patches to thrift_protocol.cpp which was changed before the patches. 8. Remove the unnecessary default malloc when constructing TMemoryBuffer. 9. Use TBinaryProtocolT instead of TBinaryProtocol to make read/write non-virtual, and remove the unnecessary shared_ptr on iprot/oprot. 10. request/response must be ThriftFramedRequest when protocol is thrift, which was not checked before. 11. Limit max length of thrift_method_name (to a reasonable large value) so that intermediate buffer can be allocated on stack directly. 12. Make ThriftFramedMessage uncopyable since the TBase* inside does not have a general copy function.
515a8d0b