Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_core.h"
00035 #include "../Text/string_types.h"
00036 #include "../System/sharedptr.h"
00037 #include "../System/cl_platform.h"
00038 #include <vector>
00039
00040 class CL_IODevice;
00041 class CL_ZipReader_Impl;
00042
00046 class CL_API_CORE CL_ZipReader
00047 {
00050
00051 public:
00052
00056 CL_ZipReader(CL_IODevice &input);
00057
00061
00062 public:
00064
00068 bool read_local_file_header(bool allow_data_descriptor = false);
00069
00071 CL_String get_filename();
00072
00074 bool has_data_descriptor() const;
00075
00077 cl_byte64 get_compressed_size() const;
00078
00080 cl_byte64 get_uncompressed_size() const;
00081
00083 void set_data_descriptor_data(cl_byte64 compressed_size, cl_byte64 uncompressed_size, cl_ubyte32 crc32);
00084
00086 cl_byte64 read_file_data(void *data, cl_byte64 size, bool read_all = true);
00087
00091
00092 private:
00093 CL_SharedPtr<CL_ZipReader_Impl> impl;
00095 };
00096