diff options
Diffstat (limited to 'lib/common/FileStream.cpp')
-rw-r--r-- | lib/common/FileStream.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/lib/common/FileStream.cpp b/lib/common/FileStream.cpp index e0806e10..57fb8274 100644 --- a/lib/common/FileStream.cpp +++ b/lib/common/FileStream.cpp @@ -30,7 +30,8 @@ FileStream::FileStream(const char *Filename, int flags, int mode) #else : mOSFileHandle(::open(Filename, flags, mode)), #endif - mIsEOF(false) + mIsEOF(false), + mFileName(Filename) { #ifdef WIN32 if(mOSFileHandle == INVALID_HANDLE_VALUE) @@ -49,9 +50,6 @@ FileStream::FileStream(const char *Filename, int flags, int mode) THROW_EXCEPTION(CommonException, OSFileOpenError) } } -#ifdef WIN32 - this->fileName = Filename; -#endif } @@ -65,7 +63,8 @@ FileStream::FileStream(const char *Filename, int flags, int mode) // -------------------------------------------------------------------------- FileStream::FileStream(tOSFileHandle FileDescriptor) : mOSFileHandle(FileDescriptor), - mIsEOF(false) + mIsEOF(false), + mFileName("HANDLE") { #ifdef WIN32 if(mOSFileHandle == INVALID_HANDLE_VALUE) @@ -77,9 +76,6 @@ FileStream::FileStream(tOSFileHandle FileDescriptor) BOX_ERROR("FileStream: called with invalid file handle"); THROW_EXCEPTION(CommonException, OSFileOpenError) } -#ifdef WIN32 - this->fileName = "HANDLE"; -#endif } #if 0 @@ -150,27 +146,32 @@ int FileStream::Read(void *pBuffer, int NBytes, int Timeout) NULL ); - if ( valid ) + if(valid) { r = numBytesRead; } - else if (GetLastError() == ERROR_BROKEN_PIPE) + else if(GetLastError() == ERROR_BROKEN_PIPE) { r = 0; } else { - BOX_ERROR("Failed to read from file: " << - GetErrorMessage(GetLastError())); + BOX_LOG_WIN_ERROR("Failed to read from file: " << mFileName); r = -1; } #else int r = ::read(mOSFileHandle, pBuffer, NBytes); + if(r == -1) + { + BOX_LOG_SYS_ERROR("Failed to read from file: " << mFileName); + } #endif + if(r == -1) { THROW_EXCEPTION(CommonException, OSFileReadError) } + if(r == 0) { mIsEOF = true; |