summaryrefslogtreecommitdiff
path: root/lib/common/FileStream.cpp
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2008-03-28 22:18:44 +0000
committerChris Wilson <chris+github@qwirx.com>2008-03-28 22:18:44 +0000
commit4fca88ed02c1f0b5208abf2420f73023de54c23e (patch)
tree51e882893d283f05b569bd27f7efab7b041c4548 /lib/common/FileStream.cpp
parent74bfdebe02405f7847fded96e42c1ccd297c9b9f (diff)
Improve logging with macros that consistently output strerror(errno) and
errno, replacing almost all use of strerror() in the main code. Log a more detailed error message before throwing an exception for some more system call failures. Make FileStream store its filename on all platforms, not just Windows. Wrap some long lines at less than 80 characters to improve readability. Fix some minor violations of coding standard (white space) and a typo in a comment.
Diffstat (limited to 'lib/common/FileStream.cpp')
-rw-r--r--lib/common/FileStream.cpp25
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;