returns number of bytes read
Reimplemented from Impala::Util::IOBuffer. Definition at line 76 of file IOBufferChannel.h. References Impala::Util::Channel::Buffer(), Impala::Util::Channel::DATA_BUFFER_SIZE, Impala::Util::IOBuffer::GetPosition(), Impala::Util::Channel::LastSendHadError(), mId, mMyChannel, Impala::Util::Channel::SendRequest(), and SetPosition(). Referenced by DoNativeTypeRead(), Impala::Util::FileCopyRemoteToLocal(), Gets(), and ReadLine(). 00077 { 00078 char* chBuf = mMyChannel->Buffer(); 00079 Int64 nrRead = 0; 00080 char* bufPtr = (char*) buf; 00081 while (nrRead < bytesToRead) 00082 { 00083 int nrData = Min<Int64>(Channel::DATA_BUFFER_SIZE, 00084 bytesToRead - nrRead); 00085 sprintf(chBuf, "readfilebuffer %d %d\0", mId, nrData); 00086 int len = mMyChannel->SendRequest(strlen(chBuf)+1); 00087 if (mMyChannel->LastSendHadError()) 00088 return 0; 00089 memcpy(bufPtr + nrRead, chBuf, len); 00090 if (len == 0) 00091 break; 00092 nrRead += len; 00093 } 00094 SetPosition(GetPosition() + nrRead); 00095 return nrRead; 00096 }
Here is the call graph for this function: ![]()
|