zipios++  2.0.2
Zipios++ – a small C++ library that provides easy access to .zip files.
gzipoutputstream.hpp
Go to the documentation of this file.
1 #pragma once
2 #ifndef GZIPOUTPUTSTREAM_HPP
3 #define GZIPOUTPUTSTREAM_HPP
4 
5 /*
6  Zipios++ - a small C++ library that provides easy access to .zip files.
7 
8  Copyright (C) 2000-2007 Thomas Sondergaard
9  Copyright (C) 2015 Made to Order Software Corporation
10 
11  This library is free software; you can redistribute it and/or
12  modify it under the terms of the GNU Lesser General Public
13  License as published by the Free Software Foundation; either
14  version 2 of the License, or (at your option) any later version.
15 
16  This library is distributed in the hope that it will be useful,
17  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  Lesser General Public License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with this library; if not, write to the Free Software
23  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */
25 
33 #include "gzipoutputstreambuf.hpp"
34 
35 #include <memory>
36 
37 
38 namespace zipios
39 {
40 
41 
42 class GZIPOutputStream : public std::ostream
43 {
44 public:
45  GZIPOutputStream(std::ostream& os, FileEntry::CompressionLevel compression_level);
46  GZIPOutputStream(std::string const& filename, FileEntry::CompressionLevel compression_level);
47  virtual ~GZIPOutputStream();
48 
49  void setFilename(std::string const& filename);
50  void setComment(std::string const& comment);
51  void close();
52  void finish();
53 
54 private:
55  std::unique_ptr<std::ofstream> m_ofs;
56  std::unique_ptr<GZIPOutputStreambuf> m_ozf;
57 };
58 
59 
60 } // zipios namespace.
61 
62 // Local Variables:
63 // mode: cpp
64 // indent-tabs-mode: nil
65 // c-basic-offset: 4
66 // tab-width: 4
67 // End:
68 
69 // vim: ts=4 sw=4 et
70 #endif
File defining zipios::GZIPOutputStreambuf.
std::unique_ptr< GZIPOutputStreambuf > m_ozf
void setFilename(std::string const &filename)
Set the filename of a stream.
virtual ~GZIPOutputStream()
Destroy the output stream.
void setComment(std::string const &comment)
Set a comment in the stream.
GZIPOutputStream(std::ostream &os, FileEntry::CompressionLevel compression_level)
Create a ZIP output stream object.
int CompressionLevel
The compression level to be used to save an entry.
Definition: fileentry.hpp:85
void close()
Close the streams.
void finish()
Finishes the stream.
A stream implementation that outputs data to a ZIP file.
std::unique_ptr< std::ofstream > m_ofs