zipios++  2.0.2
Zipios++ – a small C++ library that provides easy access to .zip files.
zipfile.hpp
Go to the documentation of this file.
1 #pragma once
2 #ifndef ZIPIOS_ZIPFILE_HPP
3 #define ZIPIOS_ZIPFILE_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 
41 
42 
43 namespace zipios
44 {
45 
46 
47 class ZipFile : public FileCollection
48 {
49 public:
50  static pointer_t openEmbeddedZipFile(std::string const & name);
51 
52  ZipFile();
53  ZipFile(std::string const & filename, offset_t s_off = 0, offset_t e_off = 0);
54  virtual pointer_t clone() const override;
55  virtual ~ZipFile() override;
56 
57  virtual stream_pointer_t getInputStream(std::string const & entry_name, MatchPath matchpath = MatchPath::MATCH) override;
58  static void saveCollectionToArchive(std::ostream & os, FileCollection & collection, std::string const & zip_comment = "");
59 
60 private:
62 };
63 
64 
65 } // zipios namespace
66 
67 // Local Variables:
68 // mode: cpp
69 // indent-tabs-mode: nil
70 // c-basic-offset: 4
71 // tab-width: 4
72 // End:
73 
74 // vim: ts=4 sw=4 et
75 #endif
The ZipFile class represents a collection of files.
Definition: zipfile.hpp:47
virtual pointer_t clone() const override
Create a clone of this ZipFile.
Definition: zipfile.cpp:397
std::shared_ptr< FileCollection > pointer_t
static void saveCollectionToArchive(std::ostream &os, FileCollection &collection, std::string const &zip_comment="")
Create a Zip archive from the specified FileCollection.
Definition: zipfile.cpp:473
Define the zipios::VirtualSeeker class.
std::shared_ptr< std::istream > stream_pointer_t
A shared pointer to an input stream.
Define the zipios::FileCollection class.
A virtual class used to see in a file embedded in another.
ZipFile()
Initialize a ZipFile object.
Definition: zipfile.cpp:283
VirtualSeeker m_vs
Definition: zipfile.hpp:61
virtual ~ZipFile() override
Clean up the ZipFile object.
Definition: zipfile.cpp:408
static pointer_t openEmbeddedZipFile(std::string const &name)
Open a zip archive that was previously appened to another file.
Definition: zipfile.cpp:260
std::streamoff offset_t
Base class for various file collections.
virtual stream_pointer_t getInputStream(std::string const &entry_name, MatchPath matchpath=MatchPath::MATCH) override
Retrieve a pointer to a file in the Zip archive.
Definition: zipfile.cpp:448