56 const std::filesystem::path &archive_path,
57 std::vector<std::tuple<std::string, uint64_t, uint64_t>> &result);
72 const std::string &buffer,
73 std::vector<std::tuple<std::string, uint64_t, uint64_t>> &result);
89 const std::filesystem::path &archive_path,
90 std::vector<std::tuple<std::string, uint64_t, uint64_t>> &result);
105 const std::string &buffer,
106 std::vector<std::tuple<std::string, uint64_t, uint64_t>> &result);
120 std::filesystem::path
122 const std::string &filename,
123 const std::filesystem::path &directory,
124 const size_t &offset =
size_t(0));
138 std::filesystem::path
140 const std::string &filename,
141 const std::filesystem::path &directory,
142 const size_t &offset =
size_t(0));
156 std::filesystem::path
158 const std::string &filename,
159 const std::filesystem::path &directory);
171 std::filesystem::path
173 const std::string &filename,
174 const std::filesystem::path &directory);
189 const std::string &filename,
190 const size_t &offset =
size_t(0));
205 const std::string &filename,
206 const size_t &offset =
size_t(0));
221 const std::string &filename);
234 const std::string &filename);
251 const std::filesystem::path &archive_path,
252 std::string name_in_archive,
253 const std::filesystem::perms &perms
254 = std::filesystem::perms::none,
255 const bool &overwrite_existing =
true);
271 const std::filesystem::path &archive_path,
272 std::string name_in_archive,
273 const std::filesystem::perms &perms,
274 const bool &overwrite_existing);
286 std::shared_ptr<archive>
298 std::shared_ptr<archive>
312 archiveError(
const std::shared_ptr<archive> &a,
const std::string &message);
377 seekCallback(archive *a,
void *client_data, la_int64_t offset,
int whence);
404 std::filesystem::path
406 const std::string &filename,
407 const std::filesystem::path &directory);
420 const std::string &filename, std::string &result);
433 std::shared_ptr<archive_entry> e,
434 const std::filesystem::path &file_path);
447 std::shared_ptr<archive_entry> e);
459 writeFile(std::shared_ptr<archive> a,
const std::filesystem::path &path,
460 std::string name_in_archive,
const std::filesystem::perms &perms);
473 std::shared_ptr<archive_entry> e,
474 const std::string &buf);
483 std::filesystem::perms
499 std::shared_ptr<MLBookProc>
mlbp;
503 getCentralDirectory(std::shared_ptr<std::istream> f,
const uint64_t &fsz,
504 std::string &result);
506 std::tuple<uint64_t, uint64_t>
507 parseEOCDRecord(std::shared_ptr<std::istream> f,
const uint64_t &fsz);
509 std::tuple<uint64_t, uint64_t>
510 parseEOCDRecordZip64(std::shared_ptr<std::istream> f,
const uint64_t &fsz,
511 const uint64_t &eocd_record_size);
514 parseCentralDirectory(
515 const std::string ¢ral_directory,
516 std::vector<std::tuple<std::string, uint64_t, uint64_t>> &result);
519 parseExtraField(
const std::string &extra, uint64_t &compressed_sz,
520 uint64_t &offset,
const int &mask);
522 std::vector<std::tuple<std::filesystem::path, std::filesystem::path>>
523 symlinkWriteResolver(
const std::filesystem::path &relative,
524 const std::filesystem::path &symlink);
527 getUTFfilename(
const std::string &extra_field,
const std::string &crc_sum,
528 std::string &filename);
531 crc32Sum(
unsigned char *buf,
size_t len);
533 int ZIP64_UNCOMPRESSED = 1;
534 int ZIP64_COMPRESSED = 2;
535 int ZIP64_OFFSET = 4;