File indexing completed on 2024-12-08 12:56:13
0001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ 0002 /* femtozip - superlightweight class to create a compressed ZIP archive 0003 Copyright (C) 2005-2006 Ariya Hidayat <ariya@kde.org> 0004 0005 Redistribution and use in source and binary forms, with or without 0006 modification, are permitted provided that the following conditions 0007 are met: 0008 * Redistributions of source code must retain the above copyright notice, 0009 this list of conditions and the following disclaimer. 0010 * Redistributions in binary form must reproduce the above copyright notice, 0011 this list of conditions and the following disclaimer in the documentation 0012 and/or other materials provided with the distribution. 0013 * Neither the name of the authors nor the names of its contributors may be 0014 used to endorse or promote products derived from this software without 0015 specific prior written permission. 0016 0017 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0018 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0019 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0020 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0021 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0022 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0023 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0024 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0025 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0026 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 0027 THE POSSIBILITY OF SUCH DAMAGE. 0028 */ 0029 0030 #ifndef USE_GSF_OUTPUT 0031 0032 #ifndef FEMTOZIP_H 0033 #define FEMTOZIP_H 0034 0035 class FemtoZipPrivate; 0036 0037 /*! 0038 FemtoZip implements a ZIP archive. 0039 */ 0040 0041 class FemtoZip 0042 { 0043 public: 0044 0045 explicit FemtoZip(const char *zipfile); 0046 ~FemtoZip(); 0047 0048 void createEntry(const char *name, int compressionLevel = 3); 0049 0050 void writeString(const char *str); 0051 0052 void closeEntry(); 0053 0054 enum 0055 { 0056 NoError = 0, 0057 ErrorCreateZip = 1, 0058 ErrorWriteData = 2 0059 }; 0060 0061 /*! 0062 Returns the error code of the latest operation. 0063 */ 0064 int errorCode() const; 0065 0066 private: 0067 // no copy and assign allowed 0068 FemtoZip(const FemtoZip &); 0069 FemtoZip &operator=(const FemtoZip &); 0070 0071 FemtoZipPrivate *d; 0072 }; 0073 0074 #endif // FEMTOZIP_H 0075 0076 #endif // USE_GSF_OUTPUT 0077 0078 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */