[ https://issues.apache.org/jira/browse/THRIFT-2304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13862476#comment-13862476 ]
Hudson commented on THRIFT-2304: -------------------------------- SUCCESS: Integrated in Thrift #984 (See [https://builds.apache.org/job/Thrift/984/]) THRIFT-2304 cpp:Move client assignments from construtor in method (roger: rev 6bac11f4fa3d96acdbd9e625be11f4f97aa053bc) * compiler/cpp/src/generate/t_cpp_generator.cc > Move client assignments from construtor in method > ------------------------------------------------- > > Key: THRIFT-2304 > URL: https://issues.apache.org/jira/browse/THRIFT-2304 > Project: Thrift > Issue Type: Improvement > Components: C++ - Compiler > Affects Versions: 0.9.1 > Reporter: Martin Vogt > Assignee: Roger Meier > Priority: Trivial > Attachments: setProto_Client-131231v1.patch > > > The current generated client code in C++ look like this > (namespace removed, for better formatting): > {code} > class MyServiceClient : virtual public MyServiceIf { > public: > MyServiceClient(shared_ptr< TProtocol> prot) : > piprot_(prot), > poprot_(prot) { > iprot_ = prot.get(); > oprot_ = prot.get(); > } > [...] > {code} > The member variables are assigned in the constructor. > The patch puts the assignment into its own method: > {code} > class MyServiceClient : virtual public MyServiceIf { > public: > MyServiceClient(shared_ptr< TProtocol> prot) { > setProtocol(prot); > } > [..] > private: > void setProtocol(shared_ptr< TProtocol> prot) { > setProtocol(prot,prot); > } > void setProtocol(shared<:TProtocol> iprot,shared_ptr<TProtocol> oprot) { > piprot_=iprot; > poprot_=oprot; > iprot_ = iprot.get(); > oprot_ = oprot.get(); > } > {code} > This allows to change the TProtocol instance, after the Client creation. > (With removing the private field or using a virtual method in a Service base > class) -- This message was sent by Atlassian JIRA (v6.1.5#6160)