summaryrefslogtreecommitdiff
path: root/lib/common
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2014-04-29 19:22:54 +0000
committerChris Wilson <chris+github@qwirx.com>2014-04-29 19:22:54 +0000
commit1edb424b734ea3e4f2128e1cbc77a22bd001f8d5 (patch)
treeda3e95edf1ab1a1808ac6673811f76610f9dfce2 /lib/common
parent1ce71f487e6cd6514198c3769cd0a337395c1f8e (diff)
Add a ToString method to IOStream and some subclasses.
Useful to help debug problems such as invalid file headers when the source of the stream might not be too obvious.
Diffstat (limited to 'lib/common')
-rw-r--r--lib/common/BufferedStream.h4
-rw-r--r--lib/common/FileStream.h4
-rw-r--r--lib/common/IOStream.cpp23
-rw-r--r--lib/common/IOStream.h1
4 files changed, 32 insertions, 0 deletions
diff --git a/lib/common/BufferedStream.h b/lib/common/BufferedStream.h
index 079c482a..4987e37b 100644
--- a/lib/common/BufferedStream.h
+++ b/lib/common/BufferedStream.h
@@ -33,6 +33,10 @@ public:
virtual bool StreamDataLeft();
virtual bool StreamClosed();
+ virtual std::string ToString() const
+ {
+ return std::string("Buffered ") + mrSource.ToString();
+ }
private:
BufferedStream(const BufferedStream &rToCopy)
: mrSource(rToCopy.mrSource) { /* do not call */ }
diff --git a/lib/common/FileStream.h b/lib/common/FileStream.h
index 9101a968..8489188c 100644
--- a/lib/common/FileStream.h
+++ b/lib/common/FileStream.h
@@ -49,6 +49,10 @@ public:
virtual bool StreamClosed();
bool CompareWith(IOStream& rOther, int Timeout = IOStream::TimeOutInfinite);
+ std::string ToString() const
+ {
+ return std::string("local file ") + mFileName;
+ }
private:
tOSFileHandle mOSFileHandle;
diff --git a/lib/common/IOStream.cpp b/lib/common/IOStream.cpp
index fc9d0bc3..71e8f8c0 100644
--- a/lib/common/IOStream.cpp
+++ b/lib/common/IOStream.cpp
@@ -245,7 +245,30 @@ void IOStream::Flush(int Timeout)
}
}
+// --------------------------------------------------------------------------
+//
+// Function
+// Name: IOStream::Write
+// Purpose: Convenience method for writing a null-terminated
+// C string to a protocol buffer.
+//
+// --------------------------------------------------------------------------
void IOStream::Write(const char *pBuffer)
{
Write(pBuffer, strlen(pBuffer));
}
+
+// --------------------------------------------------------------------------
+//
+// Function
+// Name: IOStream::ToString()
+// Purpose: Returns a string which describes this stream. Useful
+// when reporting exceptions about a stream of unknown
+// origin, for example in BackupStoreDirectory().
+// Created: 2014/04/28
+//
+// --------------------------------------------------------------------------
+std::string IOStream::ToString() const
+{
+ return "unknown IOStream";
+}
diff --git a/lib/common/IOStream.h b/lib/common/IOStream.h
index 0b1cedd3..51aef19f 100644
--- a/lib/common/IOStream.h
+++ b/lib/common/IOStream.h
@@ -65,6 +65,7 @@ public:
void Flush(int Timeout = IOStream::TimeOutInfinite);
static int ConvertSeekTypeToOSWhence(int SeekType);
+ virtual std::string ToString() const;
};