#include #include #include #include #include "lloutils.hpp" namespace llo { class lloiff_t { public: explicit lloiff_t( std::string &file_name ) { this->file_name.make( file_name ); } class section_offset_t { public: llo::utils::hash_t< std::string > section_name; std::uint32_t offset; }; class symbol_t { public: llo::utils::hash_t< std::string > symbol_name; section_offset_t location; }; class section_t { public: llo::utils::hash_t< std::string > section_name; std::vector< symbol_t > symbols; std::vector< std::uint8_t > section_raw; }; static std::shared_ptr< lloiff_t > begin( std::string &file_name ) { return std::make_shared< lloiff_t >( file_name ); } private: llo::utils::hash_t< std::string > file_name; std::vector< section_t > sections; }; } // namespace llo