summaryrefslogtreecommitdiff
path: root/lib/common/FileStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common/FileStream.cpp')
-rw-r--r--lib/common/FileStream.cpp81
1 files changed, 81 insertions, 0 deletions
diff --git a/lib/common/FileStream.cpp b/lib/common/FileStream.cpp
index 5be8237c..68209b15 100644
--- a/lib/common/FileStream.cpp
+++ b/lib/common/FileStream.cpp
@@ -190,6 +190,7 @@ int FileStream::Read(void *pBuffer, int NBytes, int Timeout)
}
else
{
+<<<<<<< HEAD
BOX_LOG_WIN_ERROR("Failed to read from file: " << mFileName);
r = -1;
}
@@ -205,6 +206,24 @@ int FileStream::Read(void *pBuffer, int NBytes, int Timeout)
{
THROW_EXCEPTION(CommonException, OSFileReadError)
}
+=======
+ THROW_WIN_FILE_ERROR("Failed to read from file", mFileName,
+ CommonException, OSFileReadError);
+ }
+
+ if(r == -1)
+ {
+ THROW_EXCEPTION(CommonException, OSFileReadError)
+ }
+#else
+ int r = ::read(mOSFileHandle, pBuffer, NBytes);
+ if(r == -1)
+ {
+ THROW_SYS_FILE_ERROR("Failed to read from file", mFileName,
+ CommonException, OSFileReadError);
+ }
+#endif
+>>>>>>> 0.12
if(r == 0)
{
@@ -228,7 +247,11 @@ IOStream::pos_type FileStream::BytesLeftToRead()
EMU_STRUCT_STAT st;
if(EMU_FSTAT(mOSFileHandle, &st) != 0)
{
+<<<<<<< HEAD
THROW_EXCEPTION(CommonException, OSFileError)
+=======
+ BOX_LOG_SYS_ERROR(BOX_FILE_MESSAGE("Failed to stat file", mFileName));
+>>>>>>> 0.12
}
return st.st_size - GetPosition();
@@ -262,14 +285,24 @@ void FileStream::Write(const void *pBuffer, int NBytes)
if ((res == 0) || (numBytesWritten != (DWORD)NBytes))
{
+<<<<<<< HEAD
// DWORD err = GetLastError();
THROW_EXCEPTION(CommonException, OSFileWriteError)
+=======
+ THROW_WIN_FILE_ERROR("Failed to write to file", mFileName,
+ CommonException, OSFileWriteError);
+>>>>>>> 0.12
}
#else
if(::write(mOSFileHandle, pBuffer, NBytes) != NBytes)
{
+<<<<<<< HEAD
BOX_LOG_SYS_ERROR("Failed to write to file: " << mFileName);
THROW_EXCEPTION(CommonException, OSFileWriteError)
+=======
+ THROW_SYS_FILE_ERROR("Failed to write to file", mFileName,
+ CommonException, OSFileWriteError);
+>>>>>>> 0.12
}
#endif
}
@@ -292,18 +325,35 @@ IOStream::pos_type FileStream::GetPosition() const
#ifdef WIN32
LARGE_INTEGER conv;
+<<<<<<< HEAD
conv.HighPart = 0;
conv.LowPart = 0;
conv.LowPart = SetFilePointer(this->mOSFileHandle, 0, &conv.HighPart, FILE_CURRENT);
+=======
+ conv.HighPart = 0;
+ conv.LowPart = SetFilePointer(this->mOSFileHandle, 0, &conv.HighPart, FILE_CURRENT);
+
+ if(conv.LowPart == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR)
+ {
+ THROW_WIN_FILE_ERROR("Failed to seek in file", mFileName,
+ CommonException, OSFileError);
+ }
+
+>>>>>>> 0.12
return (IOStream::pos_type)conv.QuadPart;
#else // ! WIN32
off_t p = ::lseek(mOSFileHandle, 0, SEEK_CUR);
if(p == -1)
{
+<<<<<<< HEAD
THROW_EXCEPTION(CommonException, OSFileError)
+=======
+ THROW_SYS_FILE_ERROR("Failed to seek in file", mFileName,
+ CommonException, OSFileError);
+>>>>>>> 0.12
}
return (IOStream::pos_type)p;
@@ -328,18 +378,31 @@ void FileStream::Seek(IOStream::pos_type Offset, int SeekType)
#ifdef WIN32
LARGE_INTEGER conv;
+<<<<<<< HEAD
+=======
+>>>>>>> 0.12
conv.QuadPart = Offset;
DWORD retVal = SetFilePointer(this->mOSFileHandle, conv.LowPart, &conv.HighPart, ConvertSeekTypeToOSWhence(SeekType));
if(retVal == INVALID_SET_FILE_POINTER && GetLastError() != NO_ERROR)
{
+<<<<<<< HEAD
THROW_EXCEPTION(CommonException, OSFileError)
+=======
+ THROW_WIN_FILE_ERROR("Failed to seek in file", mFileName,
+ CommonException, OSFileError);
+>>>>>>> 0.12
}
#else // ! WIN32
if(::lseek(mOSFileHandle, Offset, ConvertSeekTypeToOSWhence(SeekType)) == -1)
{
+<<<<<<< HEAD
THROW_EXCEPTION(CommonException, OSFileError)
+=======
+ THROW_SYS_FILE_ERROR("Failed to seek in file", mFileName,
+ CommonException, OSFileError);
+>>>>>>> 0.12
}
#endif // WIN32
@@ -365,12 +428,26 @@ void FileStream::Close()
#ifdef WIN32
if(::CloseHandle(mOSFileHandle) == 0)
+<<<<<<< HEAD
#else
if(::close(mOSFileHandle) != 0)
#endif
{
THROW_EXCEPTION(CommonException, OSFileCloseError)
}
+=======
+ {
+ THROW_WIN_FILE_ERROR("Failed to close file", mFileName,
+ CommonException, OSFileCloseError);
+ }
+#else // ! WIN32
+ if(::close(mOSFileHandle) != 0)
+ {
+ THROW_SYS_FILE_ERROR("Failed to close file", mFileName,
+ CommonException, OSFileCloseError);
+ }
+#endif // WIN32
+>>>>>>> 0.12
mOSFileHandle = INVALID_FILE;
mIsEOF = true;
@@ -401,7 +478,11 @@ bool FileStream::StreamDataLeft()
// --------------------------------------------------------------------------
bool FileStream::StreamClosed()
{
+<<<<<<< HEAD
return mIsEOF;
+=======
+ return (mOSFileHandle == INVALID_FILE);
+>>>>>>> 0.12
}
// --------------------------------------------------------------------------