Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

virtual Int64 Impala::Util::IOBufferChannel::Write ( const void *  buf,
Int64  bytesToWrite 
) [inline, virtual]

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:


Generated on Thu Jan 13 09:24:16 2011 for ImpalaSrc by  doxygen 1.5.1