1/*
2 * Copyright 2011, Oliver Tappe <zooey@hirschkaefer.de>
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _PACKAGE__HPKG__PRIVATE__REPOSITORY_READER_IMPL_H_
6#define _PACKAGE__HPKG__PRIVATE__REPOSITORY_READER_IMPL_H_
7
8
9#include <package/hpkg/ReaderImplBase.h>
10
11#include <package/RepositoryInfo.h>
12
13
14namespace BPackageKit {
15
16namespace BHPKG {
17
18
19class BRepositoryContentHandler;
20
21
22namespace BPrivate {
23
24
25class RepositoryReaderImpl : public ReaderImplBase {
26	typedef	ReaderImplBase		inherited;
27public:
28								RepositoryReaderImpl(BErrorOutput* errorOutput);
29								~RepositoryReaderImpl();
30
31			status_t			Init(const char* fileName);
32			status_t			Init(int fd, bool keepFD);
33			status_t			Init(BPositionIO* file, bool keepFile);
34
35			status_t			GetRepositoryInfo(
36									BRepositoryInfo* _repositoryInfo) const;
37
38			status_t			ParseContent(
39									BRepositoryContentHandler* contentHandler);
40
41private:
42			class PackagesAttributeHandler;
43			class PackageContentHandlerAdapter;
44
45private:
46			BRepositoryInfo		fRepositoryInfo;
47};
48
49
50}	// namespace BPrivate
51
52}	// namespace BHPKG
53
54}	// namespace BPackageKit
55
56
57#endif	// _PACKAGE__HPKG__PRIVATE__REPOSITORY_READER_IMPL_H_
58