Lines Matching defs:File
49 const std::array<uint8_t, File::MAGIC_SIZE> File::MAGIC {'P', 'A', 'N', 'D', 'A', '\0', '\0', '\0'};
55 os::file::Mode GetMode(panda_file::File::OpenMode open_mode)
58 case File::READ_ONLY: {
61 case File::READ_WRITE: {
68 case File::WRITE_ONLY: {
79 static uint32_t GetProt(panda_file::File::OpenMode mode)
82 if (mode == File::READ_WRITE) {
116 std::unique_ptr<const File> OpenPandaFileOrZip(std::string_view location, panda_file::File::OpenMode open_mode)
138 std::unique_ptr<const panda_file::File> OpenPandaFileFromZipFile(ZipArchiveHandle &handle, std::string_view location,
168 return panda_file::File::OpenFromMemory(std::move(ConstPtr), location);
172 std::unique_ptr<const panda_file::File> HandleArchive(ZipArchiveHandle &handle, FILE *fp, std::string_view location,
174 panda_file::File::OpenMode open_mode)
176 std::unique_ptr<const panda_file::File> file;
182 file = panda_file::File::OpenUncompressedArchive(fileno(fp), location, entry.GetUncompressedSize(),
188 std::unique_ptr<const panda_file::File> OpenPandaFileFromZip(FILE *fp, std::string_view location,
190 panda_file::File::OpenMode open_mode)
229 std::unique_ptr<const panda_file::File> file = HandleArchive(zipfile, fp, location, entry,
236 std::unique_ptr<const panda_file::File> OpenPandaFile(std::string_view location, std::string_view archive_filename,
237 panda_file::File::OpenMode open_mode)
260 std::unique_ptr<const panda_file::File> file;
264 file = panda_file::File::Open(location, open_mode);
270 std::unique_ptr<const File> OpenPandaFileFromMemory(const void *buffer, size_t size, std::string tag)
299 return panda_file::File::OpenFromMemory(std::move(ptr), std::to_string(hash(mem)));
302 std::unique_ptr<const File> OpenPandaFileFromSecureMemory(uint8_t *buffer, size_t size)
322 return panda_file::File::OpenFromMemory(std::move(ptr), std::to_string(hash(mem)));
381 ClassIdxIterator(const File &file, const Span<const uint32_t> &span, size_t idx)
437 return file_.GetStringData(File::EntityId(id)).data;
450 static ClassIdxIterator Begin(const File &file, const Span<const uint32_t> &span)
455 static ClassIdxIterator End(const File &file, const Span<const uint32_t> &span)
461 const File &file_;
466 File::File(std::string filename, os::mem::ConstBytePtr &&base)
478 File::~File()
483 inline std::string VersionToString(const std::array<uint8_t, File::VERSION_SIZE> &array)
487 for (size_t i = 0; i < File::VERSION_SIZE - 1; ++i) {
491 ss << static_cast<int>(array[File::VERSION_SIZE - 1]);
498 inline int CompareVersions(const std::array<uint8_t, File::VERSION_SIZE> &lhs,
499 const std::array<uint8_t, File::VERSION_SIZE> &rhs)
501 for (size_t i = 0; i < File::VERSION_SIZE; i++) {
510 inline bool operator<(const std::array<uint8_t, File::VERSION_SIZE> &lhs,
511 const std::array<uint8_t, File::VERSION_SIZE> &rhs)
516 inline bool operator>(const std::array<uint8_t, File::VERSION_SIZE> &lhs,
517 const std::array<uint8_t, File::VERSION_SIZE> &rhs)
523 std::unique_ptr<const File> File::Open(std::string_view filename, OpenMode open_mode)
527 os::file::File file = os::file::Open(filename, mode);
542 if (size < sizeof(File::Header)) {
558 return std::unique_ptr<File>(new File(filename.data(), std::move(ptr)));
561 std::unique_ptr<const File> File::OpenUncompressedArchive(int fd, const std::string_view &filename, size_t size,
565 auto file = os::file::File(fd);
571 if (size < sizeof(File::Header)) {
587 return std::unique_ptr<File>(new File(filename.data(), std::move(ptr)));
602 if (ptr.Get() == nullptr || ptr.GetSize() < sizeof(File::Header)) {
606 auto header = reinterpret_cast<const File::Header *>(reinterpret_cast<uintptr_t>(ptr.Get()));
607 if (header->magic != File::MAGIC) {
614 if (header->file_size < sizeof(File::Header) || header->file_size > ptr.GetSize()) {
654 if (!CheckHeaderElementOffset<File::IndexHeader>(header->index_section_off, header->num_indexes,
664 void CheckFileVersion(const std::array<uint8_t, File::VERSION_SIZE> &file_version, const std::string_view &filename)
697 std::unique_ptr<const File> File::OpenFromMemory(os::mem::ConstBytePtr &&ptr)
703 return std::unique_ptr<File>(new File("", std::forward<os::mem::ConstBytePtr>(ptr)));
707 std::unique_ptr<const File> File::OpenFromMemory(os::mem::ConstBytePtr &&ptr, std::string_view filename)
715 return std::unique_ptr<File>(new File(filename.data(), std::forward<os::mem::ConstBytePtr>(ptr)));
718 File::EntityId File::GetClassId(const uint8_t *mutf8_name) const
740 uint32_t File::CalcFilenameHash(const std::string &filename)
745 File::EntityId File::GetLiteralArraysId() const
751 File::EntityId File::GetClassIdFromClassHashTable(const uint8_t *mutf8_name) const
759 return File::EntityId();
764 auto entity_id = File::EntityId(entity_pair->entity_id_offset);
776 return File::EntityId();
780 bool ContainsLiteralArrayInHeader(const std::array<uint8_t, File::VERSION_SIZE> &version)
785 bool File::ValidateChecksum(uint32_t *cal_checksum_out) const
789 constexpr uint32_t FILE_CONTENT_OFFSET = File::MAGIC_SIZE + CHECKSUM_SIZE;
800 void File::ThrowIfWithCheck(bool cond, const std::string_view& msg, const std::string_view& tag) const