1/* 2 * Copyright 2009-2011, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7#include <package/hpkg/DataReader.h> 8 9#include <string.h> 10 11 12namespace BPackageKit { 13 14namespace BHPKG { 15 16 17// #pragma mark - BDataReader 18 19 20BDataReader::~BDataReader() 21{ 22} 23 24 25// #pragma mark - BBufferDataReader 26 27 28BBufferDataReader::BBufferDataReader(const void* data, size_t size) 29 : 30 fData(data), 31 fSize(size) 32{ 33} 34 35 36status_t 37BBufferDataReader::ReadData(off_t offset, void* buffer, size_t size) 38{ 39 if (size == 0) 40 return B_OK; 41 42 if (offset < 0) 43 return B_BAD_VALUE; 44 45 if (size > fSize || offset > (off_t)fSize - (off_t)size) 46 return B_ERROR; 47 48 memcpy(buffer, (const uint8*)fData + offset, size); 49 return B_OK; 50} 51 52 53} // namespace BHPKG 54 55} // namespace BPackageKit 56