1/* 2 * Copyright 2009-2013, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7#include <package/hpkg/PackageReader.h> 8 9#include <new> 10 11#include <package/hpkg/ErrorOutput.h> 12 13#include <package/hpkg/PackageFileHeapReader.h> 14#include <package/hpkg/PackageReaderImpl.h> 15 16 17namespace BPackageKit { 18 19namespace BHPKG { 20 21 22BPackageReader::BPackageReader(BErrorOutput* errorOutput) 23 : 24 fImpl(new (std::nothrow) PackageReaderImpl(errorOutput)) 25{ 26} 27 28 29BPackageReader::~BPackageReader() 30{ 31 delete fImpl; 32} 33 34 35status_t 36BPackageReader::Init(const char* fileName, uint32 flags) 37{ 38 if (fImpl == NULL) 39 return B_NO_INIT; 40 41 return fImpl->Init(fileName, flags); 42} 43 44 45status_t 46BPackageReader::Init(int fd, bool keepFD, uint32 flags) 47{ 48 if (fImpl == NULL) 49 return B_NO_INIT; 50 51 return fImpl->Init(fd, keepFD, flags); 52} 53 54 55status_t 56BPackageReader::Init(BPositionIO* file, bool keepFile, uint32 flags) 57{ 58 if (fImpl == NULL) 59 return B_NO_INIT; 60 61 return fImpl->Init(file, keepFile, flags); 62} 63 64 65status_t 66BPackageReader::ParseContent(BPackageContentHandler* contentHandler) 67{ 68 if (fImpl == NULL) 69 return B_NO_INIT; 70 71 return fImpl->ParseContent(contentHandler); 72} 73 74 75status_t 76BPackageReader::ParseContent(BLowLevelPackageContentHandler* contentHandler) 77{ 78 if (fImpl == NULL) 79 return B_NO_INIT; 80 81 return fImpl->ParseContent(contentHandler); 82} 83 84 85BPositionIO* 86BPackageReader::PackageFile() const 87{ 88 if (fImpl == NULL) 89 return NULL; 90 91 return fImpl->PackageFile(); 92} 93 94 95 96BAbstractBufferedDataReader* 97BPackageReader::HeapReader() const 98{ 99 return fImpl != NULL ? fImpl->HeapReader() : NULL; 100} 101 102 103} // namespace BHPKG 104 105} // namespace BPackageKit 106