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 <errno.h> 10#include <unistd.h> 11 12 13namespace BPackageKit { 14 15namespace BHPKG { 16 17 18BFDDataReader::BFDDataReader(int fd) 19 : 20 fFD(fd) 21{ 22} 23 24 25void 26BFDDataReader::SetFD(int fd) 27{ 28 fFD = fd; 29} 30 31 32status_t 33BFDDataReader::ReadData(off_t offset, void* buffer, size_t size) 34{ 35 ssize_t bytesRead = pread(fFD, buffer, size, offset); 36 if (bytesRead < 0) 37 return errno; 38 return (size_t)bytesRead == size ? B_OK : B_ERROR; 39} 40 41 42} // namespace BHPKG 43 44} // namespace BPackageKit 45