Reimplemented from Impala::Util::IOBuffer. Definition at line 201 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 DoNativeTypeWrite(), Impala::Util::FileCopyLocalToRemote(), and Puts(). 00202 { 00203 char* chBuf = mMyChannel->Buffer(); 00204 Int64 nrWritten = 0; 00205 char* bufPtr = (char*) buf; 00206 while (nrWritten < bytesToWrite) 00207 { 00208 sprintf(chBuf, "writefilebuffer %d\0", mId); 00209 int used = strlen(chBuf) + 1; 00210 int nrData = Min<Int64>(Channel::DATA_BUFFER_SIZE - used, 00211 bytesToWrite - nrWritten); 00212 memcpy(chBuf + used, bufPtr + nrWritten, nrData); 00213 int len = mMyChannel->SendRequest(used + nrData); 00214 if (mMyChannel->LastSendHadError()) 00215 break; 00216 nrWritten += nrData; 00217 } 00218 SetPosition(GetPosition() + bytesToWrite); 00219 return nrWritten; 00220 }
Here is the call graph for this function: ![]()
|