xref: /haiku/headers/os/package/RepositoryCache.h (revision 9f81ca838ce7b92b5689e57d3f86765db4705a7b)
1500bb630SOliver Tappe /*
2500bb630SOliver Tappe  * Copyright 2011, Haiku, Inc.
3500bb630SOliver Tappe  * Distributed under the terms of the MIT License.
4500bb630SOliver Tappe  */
57d7ed9bfSOliver Tappe #ifndef _PACKAGE__REPOSITORY_CACHE_H_
67d7ed9bfSOliver Tappe #define _PACKAGE__REPOSITORY_CACHE_H_
7500bb630SOliver Tappe 
8500bb630SOliver Tappe 
935edda8fSOliver Tappe #include <Entry.h>
1035edda8fSOliver Tappe #include <String.h>
11500bb630SOliver Tappe 
12*db9a50a2SIngo Weinhold #include <package/PackageInfoSet.h>
130d68f6afSOliver Tappe #include <package/RepositoryInfo.h>
14500bb630SOliver Tappe 
15500bb630SOliver Tappe 
167d7ed9bfSOliver Tappe namespace BPackageKit {
1735edda8fSOliver Tappe 
1835edda8fSOliver Tappe 
197d7ed9bfSOliver Tappe class BRepositoryCache {
20500bb630SOliver Tappe public:
21*db9a50a2SIngo Weinhold 			typedef BPackageInfoSet::Iterator Iterator;
2210e1bc52SIngo Weinhold 
2310e1bc52SIngo Weinhold public:
247d7ed9bfSOliver Tappe 								BRepositoryCache();
257d7ed9bfSOliver Tappe 	virtual						~BRepositoryCache();
26500bb630SOliver Tappe 
2735edda8fSOliver Tappe 			status_t			SetTo(const BEntry& entry);
2835edda8fSOliver Tappe 
290d68f6afSOliver Tappe 			const BRepositoryInfo&	Info() const;
3035edda8fSOliver Tappe 			const BEntry&		Entry() const;
3135edda8fSOliver Tappe 			bool				IsUserSpecific() const;
3235edda8fSOliver Tappe 
3335edda8fSOliver Tappe 			void				SetIsUserSpecific(bool isUserSpecific);
3435edda8fSOliver Tappe 
3510e1bc52SIngo Weinhold 			uint32				CountPackages() const;
3610e1bc52SIngo Weinhold 			Iterator			GetIterator() const;
37c9acc4f8SOliver Tappe 
38c9acc4f8SOliver Tappe private:
3910e1bc52SIngo Weinhold 			struct RepositoryContentHandler;
4010e1bc52SIngo Weinhold 
4135edda8fSOliver Tappe private:
4235edda8fSOliver Tappe 			BEntry				fEntry;
430d68f6afSOliver Tappe 			BRepositoryInfo		fInfo;
4435edda8fSOliver Tappe 			bool				fIsUserSpecific;
45c9acc4f8SOliver Tappe 
46*db9a50a2SIngo Weinhold 			BPackageInfoSet		fPackages;
4710e1bc52SIngo Weinhold };
4810e1bc52SIngo Weinhold 
4910e1bc52SIngo Weinhold 
507d7ed9bfSOliver Tappe }	// namespace BPackageKit
5135edda8fSOliver Tappe 
5235edda8fSOliver Tappe 
537d7ed9bfSOliver Tappe #endif // _PACKAGE__REPOSITORY_CACHE_H_
54