1/* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef PACKAGE_FILE_H 6#define PACKAGE_FILE_H 7 8 9#include <package/hpkg/PackageData.h> 10 11#include "PackageLeafNode.h" 12 13 14using BPackageKit::BHPKG::BPackageData; 15 16 17class PackageFile : public PackageLeafNode { 18public: 19 PackageFile(Package* package, mode_t mode, 20 const BPackageData& data); 21 virtual ~PackageFile(); 22 23 virtual status_t VFSInit(dev_t deviceID, ino_t nodeID); 24 virtual void VFSUninit(); 25 26 virtual off_t FileSize() const; 27 28 virtual status_t Read(off_t offset, void* buffer, 29 size_t* bufferSize); 30 virtual status_t Read(io_request* request); 31 32private: 33 struct IORequestOutput; 34 struct DataAccessor; 35 36private: 37 BPackageData fData; 38 DataAccessor* fDataAccessor; 39}; 40 41 42#endif // PACKAGE_FILE_H 43