Hello,
There are two CTORs for TPipedTransport in TTransportUtils. One of them has
these lines in it which initialize both pipeOnXxx_ flags, but the other one
has not:
// default is to to pipe the request when readEnd() is called
pipeOnRead_ = true;
pipeOnWrite_ = false;
Is this by intention? Or is it just missing in the second one?
Thanks,
Jens
---- full code ---
TPipedTransport(boost::shared_ptr<TTransport> srcTrans,
boost::shared_ptr<TTransport> dstTrans) :
srcTrans_(srcTrans),
dstTrans_(dstTrans),
rBufSize_(512), rPos_(0), rLen_(0),
wBufSize_(512), wLen_(0) {
// default is to to pipe the request when readEnd() is called
pipeOnRead_ = true;
pipeOnWrite_ = false;
rBuf_ = (uint8_t*) std::malloc(sizeof(uint8_t) * rBufSize_);
if (rBuf_ == NULL) {
throw std::bad_alloc();
}
wBuf_ = (uint8_t*) std::malloc(sizeof(uint8_t) * wBufSize_);
if (wBuf_ == NULL) {
throw std::bad_alloc();
}
}
TPipedTransport(boost::shared_ptr<TTransport> srcTrans,
boost::shared_ptr<TTransport> dstTrans,
uint32_t sz) :
srcTrans_(srcTrans),
dstTrans_(dstTrans),
rBufSize_(512), rPos_(0), rLen_(0),
wBufSize_(sz), wLen_(0) {
rBuf_ = (uint8_t*) std::malloc(sizeof(uint8_t) * rBufSize_);
if (rBuf_ == NULL) {
throw std::bad_alloc();
}
wBuf_ = (uint8_t*) std::malloc(sizeof(uint8_t) * wBufSize_);
if (wBuf_ == NULL) {
throw std::bad_alloc();
}