1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-23 10:17:44 +00:00
sapphire/deps/datReader/File.cpp
AriAvery 8dd40b1378 Cleanup, Improvements
- Refactored datReader and several other files for code cleanliness
- Enhanced runtime performance by optimizing select functions, utilizing std::string_view in place of std::string where appropriate
- Removed deprecated filesystem implementation
- Introduced Link Time Optimization (LTO) support for Linux builds
- Enabled parallel builds for GCC/Clang compilers
- Expanded and improved comments for various functions
- Replaced version check failure with warning, allowing for continued use with a cautionary message

Tested on MSVC/Windows and Clang/Ubuntu
2023-04-26 13:58:41 +02:00

46 lines
965 B
C++

#include "File.h"
#include <fstream>
namespace xiv::dat
{
File::File() :
_type( FileType::empty )
{
}
FileType File::get_type() const
{
return _type;
}
const std::vector< std::vector< char>>& File::get_data_sections() const
{
return _data_sections;
}
std::vector< std::vector< char>>& File::access_data_sections()
{
return _data_sections;
}
void File::exportToFile( const std::filesystem::path& i_path ) const
{
std::ofstream ofs( i_path, std::ios::binary | std::ios::out );
if( !ofs )
{
throw std::runtime_error( "Failed to open the output file: " + i_path.string() );
}
for( const auto& data_section : _data_sections )
{
ofs.write( reinterpret_cast< const char* >( data_section.data() ), static_cast< std::streamsize >( data_section.size() ) );
}
// The file stream will be closed automatically when the ofstream object goes out of scope
// ofs.close();
}
}