Use buffered file io; use fn_str() more.

This commit is contained in:
Alex Shvartzkop 2023-11-09 01:24:38 +03:00
parent 5ccdb75091
commit e35174d64b
3 changed files with 7 additions and 17 deletions

View File

@ -36,20 +36,9 @@ public:
bool CheckFileHeader( const std::filesystem::path& aPath ) const; bool CheckFileHeader( const std::filesystem::path& aPath ) const;
bool CheckFileHeader( const std::string& aPath ) const
{
return CheckFileHeader( std::filesystem::path( aPath ) );
};
CADSTAR_PARTS_LIB_MODEL ReadContent( const std::string& aSource ) const; CADSTAR_PARTS_LIB_MODEL ReadContent( const std::string& aSource ) const;
CADSTAR_PARTS_LIB_MODEL ReadFile( const std::filesystem::path& aPath ) const; CADSTAR_PARTS_LIB_MODEL ReadFile( const std::filesystem::path& aPath ) const;
CADSTAR_PARTS_LIB_MODEL ReadFile( const std::string& aPath ) const
{
return ReadFile( std::filesystem::path( aPath ) );
};
}; };
#endif //CADSTAR_PARTS_LIB_PARSER_H #endif //CADSTAR_PARTS_LIB_PARSER_H

View File

@ -29,9 +29,10 @@
namespace PLUGIN_UTILS namespace PLUGIN_UTILS
{ {
bool fileStartsWithPrefix( const wxString& aFilePath, const wxString& aPrefix, bool aIgnoreWhitespace ) bool fileStartsWithPrefix( const wxString& aFilePath, const wxString& aPrefix,
bool aIgnoreWhitespace )
{ {
wxFileInputStream input( aFilePath ); wxFFileInputStream input( aFilePath );
if( input.IsOk() && !input.Eof() ) if( input.IsOk() && !input.Eof() )
{ {
@ -41,7 +42,7 @@ bool fileStartsWithPrefix( const wxString& aFilePath, const wxString& aPrefix, b
if( aIgnoreWhitespace ) if( aIgnoreWhitespace )
{ {
while( line.IsEmpty() ) while( !input.Eof() && line.IsEmpty() )
line = text.ReadLine().Trim( false /*trim from left*/ ); line = text.ReadLine().Trim( false /*trim from left*/ );
} }
@ -55,7 +56,7 @@ bool fileStartsWithPrefix( const wxString& aFilePath, const wxString& aPrefix, b
bool fileStartsWithBinaryHeader( const wxString& aFilePath, const std::vector<uint8_t>& aHeader ) bool fileStartsWithBinaryHeader( const wxString& aFilePath, const std::vector<uint8_t>& aHeader )
{ {
wxFileInputStream input( aFilePath ); wxFFileInputStream input( aFilePath );
if( input.IsOk() && !input.Eof() ) if( input.IsOk() && !input.Eof() )
{ {

View File

@ -67,12 +67,12 @@ std::vector<LIB_SYMBOL*> CADSTAR_SCH_ARCHIVE_LOADER::LoadPartsLib( const wxStrin
CADSTAR_PARTS_LIB_PARSER p; CADSTAR_PARTS_LIB_PARSER p;
if( !p.CheckFileHeader( aFilename.utf8_string() ) ) if( !p.CheckFileHeader( aFilename.fn_str() ) )
THROW_IO_ERROR( THROW_IO_ERROR(
_( "The selected file does not appear to be a CADSTAR parts Library file" ) ); _( "The selected file does not appear to be a CADSTAR parts Library file" ) );
// TODO: we could add progress reporting for reading .lib // TODO: we could add progress reporting for reading .lib
CADSTAR_PARTS_LIB_MODEL csLib = p.ReadFile( aFilename.utf8_string() ); CADSTAR_PARTS_LIB_MODEL csLib = p.ReadFile( aFilename.fn_str() );
if( m_progressReporter ) if( m_progressReporter )
{ {