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:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user