xref: /haiku/src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinksDirectory.h (revision 9f81ca838ce7b92b5689e57d3f86765db4705a7b)
1*1e7416d9SIngo Weinhold /*
2*1e7416d9SIngo Weinhold  * Copyright 2011, Ingo Weinhold, ingo_weinhold@gmx.de.
3*1e7416d9SIngo Weinhold  * Distributed under the terms of the MIT License.
4*1e7416d9SIngo Weinhold  */
5*1e7416d9SIngo Weinhold #ifndef PACKAGE_LINKS_DIRECTORY_H
6*1e7416d9SIngo Weinhold #define PACKAGE_LINKS_DIRECTORY_H
7*1e7416d9SIngo Weinhold 
8*1e7416d9SIngo Weinhold 
9*1e7416d9SIngo Weinhold #include "Directory.h"
10*1e7416d9SIngo Weinhold 
11*1e7416d9SIngo Weinhold 
12*1e7416d9SIngo Weinhold class Package;
13*1e7416d9SIngo Weinhold class PackageLinksListener;
14*1e7416d9SIngo Weinhold 
15*1e7416d9SIngo Weinhold 
16*1e7416d9SIngo Weinhold class PackageLinksDirectory : public Directory {
17*1e7416d9SIngo Weinhold public:
18*1e7416d9SIngo Weinhold 								PackageLinksDirectory();
19*1e7416d9SIngo Weinhold 	virtual						~PackageLinksDirectory();
20*1e7416d9SIngo Weinhold 
21*1e7416d9SIngo Weinhold 	virtual	timespec			ModifiedTime() const;
22*1e7416d9SIngo Weinhold 
SetListener(PackageLinksListener * listener)23*1e7416d9SIngo Weinhold 			void				SetListener(PackageLinksListener* listener)
24*1e7416d9SIngo Weinhold 									{ fListener = listener; }
25*1e7416d9SIngo Weinhold 
26*1e7416d9SIngo Weinhold 			status_t			AddPackage(Package* package);
27*1e7416d9SIngo Weinhold 			void				RemovePackage(Package* package);
28*1e7416d9SIngo Weinhold 			void				UpdatePackageDependencies(Package* package);
29*1e7416d9SIngo Weinhold 
30*1e7416d9SIngo Weinhold private:
31*1e7416d9SIngo Weinhold 			timespec			fModifiedTime;
32*1e7416d9SIngo Weinhold 			PackageLinksListener* fListener;
33*1e7416d9SIngo Weinhold };
34*1e7416d9SIngo Weinhold 
35*1e7416d9SIngo Weinhold 
36*1e7416d9SIngo Weinhold #endif	// PACKAGE_LINKS_DIRECTORY_H
37