zipios++
2.0.2
Zipios++ – a small C++ library that provides easy access to .zip files.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
zipoutputstreambuf.hpp
Go to the documentation of this file.
1
#pragma once
2
#ifndef ZIPOUTPUTSTREAMBUF_HPP
3
#define ZIPOUTPUTSTREAMBUF_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
32
#include "
deflateoutputstreambuf.hpp
"
33
34
#include "
zipios++/fileentry.hpp
"
35
36
37
namespace
zipios
38
{
39
40
41
class
ZipOutputStreambuf
:
public
DeflateOutputStreambuf
42
{
43
public
:
44
ZipOutputStreambuf
(std::streambuf *outbuf);
45
ZipOutputStreambuf
(
ZipOutputStreambuf
const
& src) =
delete
;
46
ZipOutputStreambuf
&
operator =
(
ZipOutputStreambuf
const
& rhs) =
delete
;
47
virtual
~ZipOutputStreambuf
();
48
49
void
closeEntry
();
50
void
close
();
51
void
finish
();
52
void
putNextEntry
(
FileEntry::pointer_t
entry);
53
void
setComment
(std::string
const
& comment);
54
55
protected
:
56
virtual
int
overflow
(
int
c = EOF)
override
;
57
virtual
int
sync
()
override
;
58
59
private
:
60
void
setEntryClosedState
();
61
void
updateEntryHeaderInfo
();
62
63
std::string
m_zip_comment
;
64
FileEntry::vector_t
m_entries
;
65
FileEntry::CompressionLevel
m_compression_level
;
66
bool
m_open_entry
=
false
;
67
bool
m_open
=
true
;
68
};
69
70
71
}
// zipios namespace
72
73
// Local Variables:
74
// mode: cpp
75
// indent-tabs-mode: nil
76
// c-basic-offset: 4
77
// tab-width: 4
78
// End:
79
80
// vim: ts=4 sw=4 et
81
#endif
zipios::ZipOutputStreambuf::m_zip_comment
std::string m_zip_comment
Definition:
zipoutputstreambuf.hpp:63
zipios::ZipOutputStreambuf::m_compression_level
FileEntry::CompressionLevel m_compression_level
Definition:
zipoutputstreambuf.hpp:65
zipios::ZipOutputStreambuf::~ZipOutputStreambuf
virtual ~ZipOutputStreambuf()
Clean up the buffer.
Definition:
zipoutputstreambuf.cpp:113
zipios::ZipOutputStreambuf::setEntryClosedState
void setEntryClosedState()
Mark the current entry as closed.
Definition:
zipoutputstreambuf.cpp:331
zipios::ZipOutputStreambuf::m_open_entry
bool m_open_entry
Definition:
zipoutputstreambuf.hpp:66
zipios::ZipOutputStreambuf::finish
void finish()
Finish up an output stream buffer.
Definition:
zipoutputstreambuf.cpp:173
zipios::ZipOutputStreambuf::ZipOutputStreambuf
ZipOutputStreambuf(std::streambuf *outbuf)
Initialize a ZipOutputStreambuf object.
Definition:
zipoutputstreambuf.cpp:92
zipios::ZipOutputStreambuf::m_open
bool m_open
Definition:
zipoutputstreambuf.hpp:67
zipios::ZipOutputStreambuf::close
void close()
Close the output stream buffer.
Definition:
zipoutputstreambuf.cpp:160
zipios::FileEntry::CompressionLevel
int CompressionLevel
The compression level to be used to save an entry.
Definition:
fileentry.hpp:85
zipios::ZipOutputStreambuf::sync
virtual int sync() override
Implement the sync() functionality.
Definition:
zipoutputstreambuf.cpp:318
zipios::ZipOutputStreambuf::putNextEntry
void putNextEntry(FileEntry::pointer_t entry)
Start saving an entry in the output buffer.
Definition:
zipoutputstreambuf.cpp:197
zipios::ZipOutputStreambuf::operator=
ZipOutputStreambuf & operator=(ZipOutputStreambuf const &rhs)=delete
deflateoutputstreambuf.hpp
Header file that defines zipios::DeflateOutputStreambuf.
zipios::ZipOutputStreambuf::overflow
virtual int overflow(int c=EOF) override
Implementation of the overflow() function.
Definition:
zipoutputstreambuf.cpp:273
zipios::ZipOutputStreambuf::setComment
void setComment(std::string const &comment)
Set the archive comment.
Definition:
zipoutputstreambuf.cpp:253
zipios::ZipOutputStreambuf
Handle the output buffer of a zip archive.
Definition:
zipoutputstreambuf.hpp:41
fileentry.hpp
Define the zipios::FileEntry class.
zipios::ZipOutputStreambuf::updateEntryHeaderInfo
void updateEntryHeaderInfo()
Save the header information.
Definition:
zipoutputstreambuf.cpp:353
zipios::ZipOutputStreambuf::m_entries
FileEntry::vector_t m_entries
Definition:
zipoutputstreambuf.hpp:64
zipios::ZipOutputStreambuf::closeEntry
void closeEntry()
Close this buffer entry.
Definition:
zipoutputstreambuf.cpp:131
zipios::FileEntry::pointer_t
std::shared_ptr< FileEntry > pointer_t
Definition:
fileentry.hpp:77
zipios::DeflateOutputStreambuf
A class to handle stream deflate on the fly.
Definition:
deflateoutputstreambuf.hpp:47
zipios::FileEntry::vector_t
std::vector< pointer_t > vector_t
Definition:
fileentry.hpp:78
Generated on Tue Apr 7 2015 21:43:51 for zipios++ by
1.8.6