13ac0de3bSIngo Weinhold /* 2*eee42275SIngo Weinhold * Copyright 2013-2014, Haiku, Inc. All Rights Reserved. 33ac0de3bSIngo Weinhold * Distributed under the terms of the MIT License. 43ac0de3bSIngo Weinhold * 53ac0de3bSIngo Weinhold * Authors: 63ac0de3bSIngo Weinhold * Ingo Weinhold <ingo_weinhold@gmx.de> 79345049aSRene Gollent * Rene Gollent <rene@gollent.com> 83ac0de3bSIngo Weinhold */ 93ac0de3bSIngo Weinhold #ifndef PACKAGE_MANAGER_H 103ac0de3bSIngo Weinhold #define PACKAGE_MANAGER_H 113ac0de3bSIngo Weinhold 123ac0de3bSIngo Weinhold 1383462cc2SIngo Weinhold #include <package/DaemonClient.h> 1483462cc2SIngo Weinhold #include <package/manager/PackageManager.h> 153ac0de3bSIngo Weinhold 163ac0de3bSIngo Weinhold #include "DecisionProvider.h" 173ac0de3bSIngo Weinhold 183ac0de3bSIngo Weinhold 193ac0de3bSIngo Weinhold using namespace BPackageKit; 2083462cc2SIngo Weinhold using BPackageKit::BPrivate::BDaemonClient; 2183462cc2SIngo Weinhold using BManager::BPrivate::BPackageManager; 223ac0de3bSIngo Weinhold 233ac0de3bSIngo Weinhold 2483462cc2SIngo Weinhold class PackageManager : public BPackageManager, 2583462cc2SIngo Weinhold private BPackageManager::UserInteractionHandler { 263ac0de3bSIngo Weinhold public: 273ac0de3bSIngo Weinhold PackageManager( 2883f63a21SIngo Weinhold BPackageInstallationLocation location, 2983f63a21SIngo Weinhold bool interactive = true); 303ac0de3bSIngo Weinhold ~PackageManager(); 313ac0de3bSIngo Weinhold 3283f63a21SIngo Weinhold void SetInteractive(bool interactive); 3383f63a21SIngo Weinhold 349345049aSRene Gollent virtual void JobFailed(BJob* job); 359345049aSRene Gollent virtual void JobAborted(BJob* job); 369345049aSRene Gollent 3783462cc2SIngo Weinhold private: 3883462cc2SIngo Weinhold // UserInteractionHandler 3983462cc2SIngo Weinhold virtual void HandleProblems(); 4083462cc2SIngo Weinhold virtual void ConfirmChanges(bool fromMostSpecific); 413ac0de3bSIngo Weinhold 4283462cc2SIngo Weinhold virtual void Warn(status_t error, const char* format, ...); 439345049aSRene Gollent 449345049aSRene Gollent 459345049aSRene Gollent virtual void ProgressPackageDownloadStarted( 469345049aSRene Gollent const char* packageName); 479345049aSRene Gollent virtual void ProgressPackageDownloadActive( 489345049aSRene Gollent const char* packageName, 499345049aSRene Gollent float completionPercentage); 509345049aSRene Gollent virtual void ProgressPackageDownloadComplete( 519345049aSRene Gollent const char* packageName); 529345049aSRene Gollent virtual void ProgressPackageChecksumStarted( 539345049aSRene Gollent const char* packageName); 549345049aSRene Gollent virtual void ProgressPackageChecksumComplete( 559345049aSRene Gollent const char* packageName); 569345049aSRene Gollent 5783462cc2SIngo Weinhold virtual void ProgressStartApplyingChanges( 5883462cc2SIngo Weinhold InstalledRepository& repository); 5983462cc2SIngo Weinhold virtual void ProgressTransactionCommitted( 6083462cc2SIngo Weinhold InstalledRepository& repository, 61*eee42275SIngo Weinhold const BCommitTransactionResult& result); 6283462cc2SIngo Weinhold virtual void ProgressApplyingChangesDone( 6383462cc2SIngo Weinhold InstalledRepository& repository); 64a54a50b4SIngo Weinhold 653ac0de3bSIngo Weinhold private: 6683462cc2SIngo Weinhold void _PrintResult(InstalledRepository& 6783462cc2SIngo Weinhold installationRepository); 6883462cc2SIngo Weinhold 6983462cc2SIngo Weinhold private: 703ac0de3bSIngo Weinhold DecisionProvider fDecisionProvider; 71cf3bb0d7SIngo Weinhold BPackageManager::ClientInstallationInterface 72cf3bb0d7SIngo Weinhold fClientInstallationInterface; 73d3f4a865SRene Gollent int32 fPreviousDownloadPercentage; 7483f63a21SIngo Weinhold bool fInteractive; 753381a1bfSIngo Weinhold }; 763381a1bfSIngo Weinhold 773381a1bfSIngo Weinhold 783ac0de3bSIngo Weinhold #endif // PACKAGE_MANAGER_H 79