summaryrefslogtreecommitdiff
path: root/boost/iostreams/filter/lzma.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/iostreams/filter/lzma.hpp')
-rw-r--r--boost/iostreams/filter/lzma.hpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/boost/iostreams/filter/lzma.hpp b/boost/iostreams/filter/lzma.hpp
index 94cd2b3b54..858474c011 100644
--- a/boost/iostreams/filter/lzma.hpp
+++ b/boost/iostreams/filter/lzma.hpp
@@ -87,10 +87,12 @@ const int null = 0;
struct lzma_params {
// Non-explicit constructor.
- lzma_params( uint32_t level = lzma::default_compression )
+ lzma_params( uint32_t level = lzma::default_compression, uint32_t threads = 1 )
: level(level)
+ , threads(threads)
{ }
uint32_t level;
+ uint32_t threads;
};
//
@@ -170,8 +172,10 @@ private:
lzma::alloc_func,
lzma::free_func,
void* derived );
- void* stream_; // Actual type: lzmadec_stream*.
- uint32_t level;
+ void init_stream(bool compress);
+ void* stream_; // Actual type: lzma_stream*.
+ uint32_t level_;
+ uint32_t threads_;
};
//
@@ -182,7 +186,7 @@ private:
template<typename Alloc = std::allocator<char> >
class lzma_compressor_impl : public lzma_base, public lzma_allocator<Alloc> {
public:
- lzma_compressor_impl(const lzma_params& = lzma::default_compression);
+ lzma_compressor_impl(const lzma_params& = lzma_params());
~lzma_compressor_impl();
bool filter( const char*& src_begin, const char* src_end,
char*& dest_begin, char* dest_end, bool flush );
@@ -222,7 +226,7 @@ private:
public:
typedef typename base_type::char_type char_type;
typedef typename base_type::category category;
- basic_lzma_compressor( const lzma_params& = lzma::default_compression,
+ basic_lzma_compressor( const lzma_params& = lzma_params(),
std::streamsize buffer_size = default_device_buffer_size );
};
BOOST_IOSTREAMS_PIPABLE(basic_lzma_compressor, 1)