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