2 * Copyright 2013-2015, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
6 * Ingo Weinhold <ingo_weinhold@gmx.de>
7 * Rene Gollent <rene@gollent.com>
9 #ifndef PACKAGE_MANAGER_H
10 #define PACKAGE_MANAGER_H
13 #include <package/DaemonClient.h>
14 #include <package/manager/PackageManager.h>
16 #include "DecisionProvider.h"
19 using namespace BPackageKit
;
20 using BPackageKit::BPrivate::BDaemonClient
;
21 using BManager::BPrivate::BPackageManager
;
24 class PackageManager
: public BPackageManager
,
25 private BPackageManager::UserInteractionHandler
{
28 BPackageInstallationLocation location
,
29 bool interactive
= true);
32 void SetInteractive(bool interactive
);
34 virtual void JobFailed(BSupportKit::BJob
* job
);
35 virtual void JobAborted(BSupportKit::BJob
* job
);
38 // UserInteractionHandler
39 virtual void HandleProblems();
40 virtual void ConfirmChanges(bool fromMostSpecific
);
42 virtual void Warn(status_t error
, const char* format
, ...);
45 virtual void ProgressPackageDownloadStarted(
46 const char* packageName
);
47 virtual void ProgressPackageDownloadActive(
48 const char* packageName
,
49 float completionPercentage
,
50 off_t bytes
, off_t totalBytes
);
51 virtual void ProgressPackageDownloadComplete(
52 const char* packageName
);
53 virtual void ProgressPackageChecksumStarted(
54 const char* packageName
);
55 virtual void ProgressPackageChecksumComplete(
56 const char* packageName
);
58 virtual void ProgressStartApplyingChanges(
59 InstalledRepository
& repository
);
60 virtual void ProgressTransactionCommitted(
61 InstalledRepository
& repository
,
62 const BCommitTransactionResult
& result
);
63 virtual void ProgressApplyingChangesDone(
64 InstalledRepository
& repository
);
67 void _PrintResult(InstalledRepository
&
68 installationRepository
);
71 DecisionProvider fDecisionProvider
;
72 BPackageManager::ClientInstallationInterface
73 fClientInstallationInterface
;
77 bigtime_t fLastRateCalcTime
;
82 #endif // PACKAGE_MANAGER_H