aboutsummaryrefslogtreecommitdiffstats
path: root/src/streamContentHandler.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2005-09-03 12:48:59 +0000
committerVincent Richard <[email protected]>2005-09-03 12:48:59 +0000
commitf777b659b9bd43f90c3f8b224ad296e42d89a02b (patch)
tree20f08abf13d3f2cb3ff1bfaa83348d1f69cc20d9 /src/streamContentHandler.cpp
parentUpdated code to use smart pointers. (diff)
downloadvmime-f777b659b9bd43f90c3f8b224ad296e42d89a02b.tar.gz
vmime-f777b659b9bd43f90c3f8b224ad296e42d89a02b.zip
Added progression notifications.
Diffstat (limited to 'src/streamContentHandler.cpp')
-rw-r--r--src/streamContentHandler.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/streamContentHandler.cpp b/src/streamContentHandler.cpp
index 0b9d33e3..bf417b6c 100644
--- a/src/streamContentHandler.cpp
+++ b/src/streamContentHandler.cpp
@@ -128,7 +128,8 @@ void streamContentHandler::generate(utility::outputStream& os, const vmime::enco
}
-void streamContentHandler::extract(utility::outputStream& os) const
+void streamContentHandler::extract(utility::outputStream& os,
+ utility::progressionListener* progress) const
{
if (!m_stream)
return;
@@ -138,7 +139,10 @@ void streamContentHandler::extract(utility::outputStream& os) const
{
m_stream->reset(); // may not work...
- utility::bufferedStreamCopy(*m_stream, os);
+ if (progress)
+ utility::bufferedStreamCopy(*m_stream, os, getLength(), progress);
+ else
+ utility::bufferedStreamCopy(*m_stream, os);
}
// Need to decode data
else
@@ -147,19 +151,25 @@ void streamContentHandler::extract(utility::outputStream& os) const
m_stream->reset(); // may not work...
- theDecoder->decode(*m_stream, os);
+ utility::progressionListenerSizeAdapter plsa(progress, getLength());
+
+ theDecoder->decode(*m_stream, os, &plsa);
}
}
-void streamContentHandler::extractRaw(utility::outputStream& os) const
+void streamContentHandler::extractRaw(utility::outputStream& os,
+ utility::progressionListener* progress) const
{
if (!m_stream)
return;
m_stream->reset(); // may not work...
- utility::bufferedStreamCopy(*m_stream, os);
+ if (progress)
+ utility::bufferedStreamCopy(*m_stream, os, getLength(), progress);
+ else
+ utility::bufferedStreamCopy(*m_stream, os);
}