From f777b659b9bd43f90c3f8b224ad296e42d89a02b Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Sat, 3 Sep 2005 12:48:59 +0000 Subject: Added progression notifications. --- src/streamContentHandler.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src/streamContentHandler.cpp') 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); } -- cgit v1.2.3