Add private BDataPositionIOWrapper

Implements the BPositionIO interface on top of a BDataIO, requiring the
{Read,Write}At() accesses to be sequential.
This commit is contained in:
Ingo Weinhold
2014-07-13 17:57:56 +02:00
parent 44c4771163
commit 05b565f4f2
5 changed files with 143 additions and 0 deletions
@@ -0,0 +1 @@
#include <../private/support/DataPositionIOWrapper.h>
@@ -0,0 +1,37 @@
/*
* Copyright 2014, Ingo Weinhold, [email protected].
* Distributed under the terms of the MIT License.
*/
#ifndef _DATA_POSITION_IO_WRAPPER_H_
#define _DATA_POSITION_IO_WRAPPER_H_
#include <DataIO.h>
class BDataPositionIOWrapper : public BPositionIO {
public:
BDataPositionIOWrapper(BDataIO* io);
~BDataPositionIOWrapper();
virtual ssize_t Read(void* buffer, size_t size);
virtual ssize_t Write(const void* buffer, size_t size);
virtual ssize_t ReadAt(off_t position, void* buffer,
size_t size);
virtual ssize_t WriteAt(off_t position, const void* buffer,
size_t size);
virtual off_t Seek(off_t position, uint32 seekMode);
virtual off_t Position() const;
virtual status_t SetSize(off_t size);
virtual status_t GetSize(off_t* size) const;
private:
BDataIO* fIO;
off_t fPosition;
};
#endif // _DATA_POSITION_IO_WRAPPER_H_