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

Impala::Util::IOBufferFile::IOBufferFile ( CString  filename,
bool  readMode,
bool  useMemory 
) [inline]

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:


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