1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef GLOBAL_FACTORY_H
6#define GLOBAL_FACTORY_H
7
8
9#include <package/hpkg/HPKGDefs.h>
10#include <package/hpkg/PackageDataReader.h>
11
12#include "BlockBufferCacheKernel.h"
13
14
15using BPackageKit::BHPKG::BDataReader;
16using BPackageKit::BHPKG::BPackageData;
17using BPackageKit::BHPKG::BPackageDataReader;
18using BPackageKit::BHPKG::BPackageDataReaderFactory;
19using BPackageKit::BHPKG::B_HPKG_DEFAULT_DATA_CHUNK_SIZE_ZLIB;
20
21
22class GlobalFactory {
23private:
24								GlobalFactory();
25								~GlobalFactory();
26
27public:
28	static	status_t			CreateDefault();
29	static	void				DeleteDefault();
30	static	GlobalFactory*		Default();
31
32			status_t			CreatePackageDataReader(BDataReader* dataReader,
33									const BPackageData& data,
34									BPackageDataReader*& _reader);
35
36private:
37			status_t			_Init();
38
39private:
40	static	GlobalFactory*		sDefaultInstance;
41
42			BlockBufferCacheKernel fBufferCache;
43			BPackageDataReaderFactory fPackageDataReaderFactory;
44};
45
46#endif	// GLOBAL_FACTORY_H
47