Definition at line 32 of file IOBufferFile.h. References FSeek(), FTell(), ILOG_ERROR, mFile, mReadMode, mUseMemory, Open(), Impala::Util::IOBuffer::SetBuffer(), and Impala::Util::IOBuffer::SetSize(). 00033 { 00034 if (!readMode && useMemory) 00035 { 00036 ILOG_ERROR("useMemory not supported for write mode"); 00037 return; 00038 } 00039 00040 mReadMode = readMode; 00041 mUseMemory = useMemory; 00042 00043 mFile = Open(filename, (mReadMode ? "rb" : "w+b")); 00044 if (!mFile) 00045 { 00046 ILOG_ERROR("Failed to open " << filename); 00047 return; 00048 } 00049 00050 if (mReadMode) 00051 { 00052 FSeek(mFile, 0, SEEK_END); 00053 PositionType size = FTell(mFile); 00054 FSeek(mFile, 0, SEEK_SET); 00055 if (mUseMemory) 00056 { 00057 unsigned char* buf = new unsigned char[size]; 00058 fread(buf, 1, size, mFile); 00059 SetBuffer(buf, size); 00060 fclose(mFile); 00061 mFile = 0; 00062 } 00063 else 00064 { 00065 SetSize(size); 00066 } 00067 } 00068 }
Here is the call graph for this function: ![]()
|