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