Преглед на файлове

Return bytes read/written

Daniele Bartolini преди 10 години
родител
ревизия
f7febf9f54

+ 4 - 5
src/core/filesystem/apk_file.cpp

@@ -54,17 +54,16 @@ void ApkFile::skip(uint32_t bytes)
 	CE_UNUSED(seek_result);
 }
 
-void ApkFile::read(void* buffer, uint32_t size)
+uint32_t ApkFile::read(void* buffer, uint32_t size)
 {
 	CE_ASSERT_NOT_NULL(buffer);
-	uint32_t bytes_read = (uint32_t)AAsset_read(_asset, buffer, size);
-	CE_ASSERT(bytes_read == size, "AAsset_read: requested: %lu, read: %lu", size, bytes_read);
-	CE_UNUSED(bytes_read);
+	return (uint32_t)AAsset_read(_asset, buffer, size);
 }
 
-void ApkFile::write(const void* /*buffer*/, uint32_t /*size*/)
+uint32_t ApkFile::write(const void* /*buffer*/, uint32_t /*size*/)
 {
 	CE_ASSERT(false, "Apk files are read only!");
+	return 0;
 }
 
 bool ApkFile::copy_to(File& /*file*/, uint32_t /*size = 0*/)

+ 2 - 2
src/core/filesystem/apk_file.h

@@ -30,10 +30,10 @@ public:
 	void skip(uint32_t bytes);
 
 	/// @copydoc File::read()
-	void read(void* buffer, uint32_t size);
+	uint32_t read(void* buffer, uint32_t size);
 
 	/// @copydoc File::write()
-	void write(const void* buffer, uint32_t size);
+	uint32_t write(const void* buffer, uint32_t size);
 
 	/// @copydoc File::copy_to()
 	bool copy_to(File& file, uint32_t size = 0);

+ 4 - 6
src/core/filesystem/disk_file.cpp

@@ -44,7 +44,7 @@ void DiskFile::skip(uint32_t bytes)
 	_file.skip(bytes);
 }
 
-void DiskFile::read(void* buffer, uint32_t size)
+uint32_t DiskFile::read(void* buffer, uint32_t size)
 {
 	check_valid();
 
@@ -54,11 +54,10 @@ void DiskFile::read(void* buffer, uint32_t size)
 		_file.seek(0);
 	}
 
-	/*uint32_t bytes_read =*/ _file.read(buffer, size);
-	//CE_ASSERT(bytes_read == size, "Failed to read from file: requested: %llu, read: %llu", size, bytes_read);
+	return _file.read(buffer, size);
 }
 
-void DiskFile::write(const void* buffer, uint32_t size)
+uint32_t DiskFile::write(const void* buffer, uint32_t size)
 {
 	check_valid();
 
@@ -68,8 +67,7 @@ void DiskFile::write(const void* buffer, uint32_t size)
 		_file.seek(0);
 	}
 
-	/*uint32_t bytes_written =*/ _file.write(buffer, size);
-	//CE_ASSERT(bytes_written == size, "Failed to write to file: requested: %llu, written: %llu", size, bytes_written);
+	return _file.write(buffer, size);
 }
 
 bool DiskFile::copy_to(File& file, uint32_t size)

+ 2 - 2
src/core/filesystem/disk_file.h

@@ -33,10 +33,10 @@ public:
 	void skip(uint32_t bytes);
 
 	/// @copydoc File::read()
-	void read(void* buffer, uint32_t size);
+	uint32_t read(void* buffer, uint32_t size);
 
 	/// @copydoc File::write()
-	void write(const void* buffer, uint32_t size);
+	uint32_t write(const void* buffer, uint32_t size);
 
 	/// @copydoc File::copy_to()
 	bool copy_to(File& file, uint32_t size = 0);

+ 2 - 2
src/core/filesystem/file.h

@@ -45,10 +45,10 @@ public:
 	virtual void skip(uint32_t bytes) = 0;
 
 	/// Reads a block of data from the file.
-	virtual void read(void* buffer, uint32_t size) = 0;
+	virtual uint32_t read(void* buffer, uint32_t size) = 0;
 
 	/// Writes a block of data to the file.
-	virtual void write(const void* buffer, uint32_t size) = 0;
+	virtual uint32_t write(const void* buffer, uint32_t size) = 0;
 
 	/// Copies a chunk of 'size' bytes of data from this to another file.
 	virtual bool copy_to(File& file, uint32_t size = 0) = 0;

+ 6 - 2
src/core/filesystem/null_file.h

@@ -37,16 +37,20 @@ public:
 	/// @copydoc File::read()
 	/// @note
 	///	Fills buffer with zeroes
-	void read(void* buffer, uint32_t size)
+	uint32_t read(void* buffer, uint32_t size)
 	{
 		for (uint32_t i = 0; i < size; i++)
 		{
 			((uint8_t*)buffer)[i] = 0;
 		}
+		return size;
 	}
 
 	/// @copydoc File::write()
-	void write(const void* buffer, uint32_t size) { (void)buffer; (void)size; }
+	uint32_t write(const void* /*buffer*/, uint32_t size)
+	{
+		return size;
+	}
 
 	/// @copydoc File::copy_to()
 	/// @note