package kit: Add BAbstractBufferedDataReader

It doesn't do much in terms of buffering, but defines an interface
buffered readers can implement, namely the additional
ReadDataToOutput() which currently BPackageDataReader specifies.
This commit is contained in:
Ingo Weinhold
2013-05-25 01:12:23 +02:00
parent b5786b0f68
commit 175ff8ec77
2 changed files with 32 additions and 0 deletions
+14
View File
@@ -14,6 +14,9 @@ namespace BPackageKit {
namespace BHPKG {
class BDataOutput;
class BDataReader {
public:
virtual ~BDataReader();
@@ -23,6 +26,17 @@ public:
};
class BAbstractBufferedDataReader : public BDataReader {
public:
virtual ~BAbstractBufferedDataReader();
virtual status_t ReadData(off_t offset, void* buffer,
size_t size);
virtual status_t ReadDataToOutput(off_t offset, size_t size,
BDataOutput* output) = 0;
};
class BFDDataReader : public BDataReader {
public:
BFDDataReader(int fd);
+18
View File
@@ -6,6 +6,8 @@
#include <package/hpkg/DataReader.h>
#include <package/hpkg/DataOutput.h>
#include <string.h>
@@ -22,6 +24,22 @@ BDataReader::~BDataReader()
}
// #pragma mark - BAbstractBufferedDataReader
BAbstractBufferedDataReader::~BAbstractBufferedDataReader()
{
}
status_t
BAbstractBufferedDataReader::ReadData(off_t offset, void* buffer, size_t size)
{
BBufferDataOutput output(buffer, size);
return ReadDataToOutput(offset, size, &output);
}
// #pragma mark - BBufferDataReader