diff options
author | Vincent Richard <[email protected]> | 2005-09-03 12:48:59 +0000 |
---|---|---|
committer | Vincent Richard <[email protected]> | 2005-09-03 12:48:59 +0000 |
commit | f777b659b9bd43f90c3f8b224ad296e42d89a02b (patch) | |
tree | 20f08abf13d3f2cb3ff1bfaa83348d1f69cc20d9 /src/streamContentHandler.cpp | |
parent | Updated code to use smart pointers. (diff) | |
download | vmime-f777b659b9bd43f90c3f8b224ad296e42d89a02b.tar.gz vmime-f777b659b9bd43f90c3f8b224ad296e42d89a02b.zip |
Added progression notifications.
Diffstat (limited to 'src/streamContentHandler.cpp')
-rw-r--r-- | src/streamContentHandler.cpp | 20 |
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); } |