#pragma once // This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild #include "../kaitai/kaitaistruct.h" #include #include #include #if KAITAI_STRUCT_VERSION < 9000L #error "Incompatible Kaitai Struct C++/STL API: version 0.9 or later is required" #endif class apple_sysf_t : public kaitai::kstruct { public: class sysf_store_body_t; class sysf_variable_t; apple_sysf_t(kaitai::kstream* p__io, kaitai::kstruct* p__parent = nullptr, apple_sysf_t* p__root = nullptr); private: void _read(); void _clean_up(); public: ~apple_sysf_t(); class sysf_store_body_t : public kaitai::kstruct { public: sysf_store_body_t(kaitai::kstream* p__io, apple_sysf_t* p__parent = nullptr, apple_sysf_t* p__root = nullptr); private: void _read(); void _clean_up(); public: ~sysf_store_body_t(); private: std::unique_ptr>> m_variables; std::unique_ptr> m_zeroes; apple_sysf_t* m__root; apple_sysf_t* m__parent; public: std::vector>* variables() const { return m_variables.get(); } std::vector* zeroes() const { return m_zeroes.get(); } apple_sysf_t* _root() const { return m__root; } apple_sysf_t* _parent() const { return m__parent; } }; class sysf_variable_t : public kaitai::kstruct { public: sysf_variable_t(kaitai::kstream* p__io, apple_sysf_t::sysf_store_body_t* p__parent = nullptr, apple_sysf_t* p__root = nullptr); private: void _read(); void _clean_up(); public: ~sysf_variable_t(); private: uint64_t m_len_name; bool m_invalid_flag; std::string m_name; uint16_t m_len_data; bool n_len_data; public: bool _is_null_len_data() { len_data(); return n_len_data; }; private: std::string m_data; bool n_data; public: bool _is_null_data() { data(); return n_data; }; private: apple_sysf_t* m__root; apple_sysf_t::sysf_store_body_t* m__parent; public: uint64_t len_name() const { return m_len_name; } bool invalid_flag() const { return m_invalid_flag; } std::string name() const { return m_name; } uint16_t len_data() const { return m_len_data; } std::string data() const { return m_data; } apple_sysf_t* _root() const { return m__root; } apple_sysf_t::sysf_store_body_t* _parent() const { return m__parent; } }; private: bool f_len_sysf_store_header; int8_t m_len_sysf_store_header; public: int8_t len_sysf_store_header(); private: uint32_t m_signature; uint8_t m_unknown; uint32_t m_unknown1; uint16_t m_sysf_size; std::unique_ptr m_body; uint32_t m_crc; apple_sysf_t* m__root; kaitai::kstruct* m__parent; std::string m__raw_body; std::unique_ptr m__io__raw_body; public: uint32_t signature() const { return m_signature; } uint8_t unknown() const { return m_unknown; } uint32_t unknown1() const { return m_unknown1; } uint16_t sysf_size() const { return m_sysf_size; } sysf_store_body_t* body() const { return m_body.get(); } uint32_t crc() const { return m_crc; } apple_sysf_t* _root() const { return m__root; } kaitai::kstruct* _parent() const { return m__parent; } std::string _raw_body() const { return m__raw_body; } kaitai::kstream* _io__raw_body() const { return m__io__raw_body.get(); } };