xref: /haiku/src/apps/haikudepot/packagemanagement/UninstallPackageProcess.h (revision abba71575e34f84c3d75be9d29d6e6caa6c033db)
1 /*
2  * Copyright 2013, Stephan Aßmus <superstippi@gmx.de>
3  * Copyright 2011, Ingo Weinhold, <ingo_weinhold@gmx.de>
4  * Copyright 2013, Rene Gollent, <rene@gollent.com>
5  * Copyright 2017, Julian Harnath <julian.harnath@rwth-aachen.de>
6  * Copyright 2021, Andrew Lindesay <apl@lindesay.co.nz>
7  *
8  * All rights reserved. Distributed under the terms of the MIT License.
9  *
10  * Note that this file has been re-factored from `PackageManager.h` and
11  * copyrights have been carried across in 2021.
12  */
13 #ifndef UNINSTALL_PACKAGE_PROCESS_H
14 #define UNINSTALL_PACKAGE_PROCESS_H
15 
16 
17 #include "AbstractPackageProcess.h"
18 #include "PackageProgressListener.h"
19 
20 
21 class UninstallPackageProcess
22 	: public AbstractPackageProcess,
23 		private PackageProgressListener {
24 public:
25 								UninstallPackageProcess(
26 									PackageInfoRef package, Model* model);
27 	virtual						~UninstallPackageProcess();
28 
29 	virtual	const char*			Name() const;
30 	virtual	const char*			Description() const;
31 
32 			void				StartApplyingChanges(
33 									BPackageManager::InstalledRepository&
34 									repository);
35 			void				ApplyingChangesDone(
36 									BPackageManager::InstalledRepository&
37 									repository);
38 
39 protected:
40 	virtual	status_t			RunInternal();
41 
42 private:
43 			BString				fDescription;
44 			std::vector<PackageInfoRef>
45 								fRemovedPackages;
46 };
47 
48 #endif // INSTALL_PACKAGE_PROCESS_H
49