26 virtual std::shared_ptr<Linker::Contents> ReadFile(
const std::shared_ptr<Linker::Reader>& rd, offset_t size) = 0;
29 offset_t file_offset = 0;
30 offset_t file_size = offset_t(-1);
31 std::shared_ptr<FileReader> file_reader =
nullptr;
33 typedef std::shared_ptr<Linker::Contents> file_reader_type(
const std::shared_ptr<Linker::Reader>& rd, offset_t size);
34 typedef std::shared_ptr<Linker::Contents> file_reader1_type(
const std::shared_ptr<Linker::Reader>& rd);
36 void SetFileReader(std::shared_ptr<FileReader> file_reader);
37 void SetFileReader(std::shared_ptr<Linker::Contents> (* file_reader)(
const std::shared_ptr<Linker::Reader>& rd, offset_t size));
38 void SetFileReader(std::shared_ptr<Linker::Contents> (* file_reader)(
const std::shared_ptr<Linker::Reader>& rd));
40 ArchiveFormat(std::shared_ptr<FileReader> file_reader =
nullptr)
41 : file_reader(file_reader)
45 ArchiveFormat(std::shared_ptr<Linker::Contents> (* file_reader)(
const std::shared_ptr<Linker::Reader>& rd, offset_t size));
46 ArchiveFormat(std::shared_ptr<Linker::Contents> (* file_reader)(
const std::shared_ptr<Linker::Reader>& rd));
52 bool sysv_filename =
false;
53 offset_t extended_name_offset = 0;
54 uint64_t modification = 0;
55 uint32_t owner_id = 0, group_id = 0;
58 std::shared_ptr<Linker::Contents> contents;
61 std::vector<File> files;
63 void ReadFile(
const std::shared_ptr<Linker::Reader>& rd)
override;
65 offset_t
WriteFile(
const std::shared_ptr<Linker::Writer>& wr)
const override;