This file is indexed.

/usr/include/Poco/Zip/Compress.h is in libpoco-dev 1.8.0.1-1ubuntu4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
//
// Compress.h
//
// Library: Zip
// Package: Zip
// Module:  Compress
//
// Definition of the Compress class.
//
// Copyright (c) 2007, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier:	BSL-1.0
//


#ifndef Zip_Compress_INCLUDED
#define Zip_Compress_INCLUDED


#include "Poco/Zip/Zip.h"
#include "Poco/Zip/ZipArchive.h"
#include "Poco/FIFOEvent.h"
#include <istream>
#include <ostream>
#include <set>


namespace Poco {
namespace Zip {


class Zip_API Compress
	/// Compresses a directory or files as zip.
{
public:
	Poco::FIFOEvent<const ZipLocalFileHeader> EDone;

	Compress(std::ostream& out, bool seekableOut, bool forceZip64 = false);
		/// seekableOut determines how we write the zip, setting it to true is recommended for local files (smaller zip file),
		/// if you are compressing directly to a network, you MUST set it to false
		/// If forceZip64 is set true then the file header is allocated with zip64 extension so that it can be updated after the file data is written
		/// if seekableOut is true in case the compressed or uncompressed size exceeds 32 bits.

	~Compress();

	void addFile(std::istream& input, const Poco::DateTime& lastModifiedAt, const Poco::Path& fileName, ZipCommon::CompressionMethod cm = ZipCommon::CM_DEFLATE, ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM);
		/// Adds a single file to the Zip File. fileName must not be a directory name.

	void addFile(const Poco::Path& file, const Poco::Path& fileName, ZipCommon::CompressionMethod cm = ZipCommon::CM_DEFLATE, ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM);
		/// Adds a single file to the Zip File. fileName must not be a directory name. The file must exist physically!

	void addDirectory(const Poco::Path& entryName, const Poco::DateTime& lastModifiedAt);
		/// Adds a directory entry excluding all children to the Zip file, entryName must not be empty.

	void addRecursive(const Poco::Path& entry, ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM, bool excludeRoot = true, const Poco::Path& name = Poco::Path());
		/// Adds a directory entry recursively to the zip file, set excludeRoot to false to exclude the parent directory.
		/// If excludeRoot is true you can specify an empty name to add the files as relative files

	void addRecursive(const Poco::Path& entry, ZipCommon::CompressionMethod cm, ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM, bool excludeRoot = true, const Poco::Path& name = Poco::Path());
		/// Adds a directory entry recursively to the zip file, set excludeRoot to false to exclude the parent directory.
		/// If excludeRoot is true you can specify an empty name to add the files as relative files

	void setZipComment(const std::string& comment);
		/// Sets the Zip file comment.

	const std::string& getZipComment() const;
		/// Returns the Zip file comment.
		
	ZipArchive close();
		/// Finalizes the ZipArchive, closes it.

	void setStoreExtensions(const std::set<std::string>& extensions);
		/// Sets the file extensions for which the CM_STORE compression method
		/// is used if CM_AUTO is specified in addFile() or addRecursive().
		/// For all other extensions, CM_DEFLATE is used. This is used to avoid
		/// double compression of already compressed file formats, which usually
		/// leads to worse results. Extensions will be converted to lower case.
		///
		/// The default extensions are:
		///   - gif
		///   - jpg
		///   - jpeg
		///   - png
		
	const std::set<std::string>& getStoreExtensions() const;
		/// Returns the file extensions for which the CM_STORE compression method
		/// is used if CM_AUTO is specified in addFile() or addRecursive().
		///
		/// See setStoreExtensions() for more information.

private:
	enum
	{
		COMPRESS_CHUNK_SIZE = 8192
	};

	Compress(const Compress&);
	Compress& operator=(const Compress&);

	void addEntry(std::istream& input, const Poco::DateTime& lastModifiedAt, const Poco::Path& fileName, ZipCommon::CompressionMethod cm = ZipCommon::CM_DEFLATE, ZipCommon::CompressionLevel cl = ZipCommon::CL_MAXIMUM);
		/// Either adds a file or a single directory entry (excluding subchildren) to the Zip file. the compression level will be ignored
		/// for directories.

	void addFileRaw(std::istream& in, const ZipLocalFileHeader& hdr, const Poco::Path& fileName);
		/// copys an already compressed ZipEntry from in

private:
	std::set<std::string>        _storeExtensions;
	std::ostream&                _out;
	bool                         _seekableOut;
	bool						 _forceZip64;
	ZipArchive::FileHeaders      _files;
	ZipArchive::FileInfos        _infos;
	ZipArchive::DirectoryInfos   _dirs;
	ZipArchive::DirectoryInfos64 _dirs64;
	Poco::UInt64				 _offset;
    std::string                  _comment;

	friend class Keep;
	friend class Rename;
};


//
// inlines
//


inline void Compress::setZipComment(const std::string& comment)
{
	_comment = comment;
}


inline const std::string& Compress::getZipComment() const
{
	return _comment;
}


inline const std::set<std::string>& Compress::getStoreExtensions() const
{
	return _storeExtensions;
}


} } // namespace Poco::Zip


#endif // Zip_Compress_INCLUDED