[
https://issues.apache.org/jira/browse/THRIFT-3560?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15109259#comment-15109259
]
ASF GitHub Bot commented on THRIFT-3560:
----------------------------------------
Github user szenker commented on the pull request:
https://github.com/apache/thrift/pull/798#issuecomment-173337036
Adding the const keyword is not just syntactical sugar. It requires users
which derive from TTransport to be more strict when they implement their own
version of isOpen() and getOrigin() as it enforces them to not alter the
internal state of their custom TTransport implementation when we are calling
one of those methods from the Thrift C++ library. So from the Thrift library
point of view, we can refactor the C++ library and call isOpen() more or less
often without introducing side effects in the users code. peek() should be also
const in my opinion, as it should return true in case data is available for
reading.
@hcorg: I took a quick look into your fork on github (cpp_v2). I really
like the way how you refactored the c++ code generator. How can I get involved
in the refactoring of the cpp_v2 library / compiler? Especially I'm interested
in supporting to refactor the asynchronous client and server. E.g. to add
exception support and the ability to do pipelining.
> C++ TTransport::isOpen() and TTransport::getOrigin() should be const member
> functions
> -------------------------------------------------------------------------------------
>
> Key: THRIFT-3560
> URL: https://issues.apache.org/jira/browse/THRIFT-3560
> Project: Thrift
> Issue Type: Improvement
> Components: C++ - Library
> Affects Versions: 0.9.3, 0.9.4, 1.0
> Reporter: Sebastian Zenker
> Priority: Minor
> Labels: easyfix
>
> ... as they should not alter the state of TTransport. Also peek() should be
> const in my opinion, but this requires some more refactoring.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)