BPackageManager::UserInteractionHandler: Make non-abstract

Most of the hooks don't strictly need a non-empty implementation. The
defaults now simply throw exceptions in those that do. This allows the
class to be instantiated, which is useful when a BPackageManager is only
used for finding packages.
This commit is contained in:
Ingo Weinhold
2013-11-21 13:29:21 +01:00
parent 6722e1ae43
commit ee8e91583e
2 changed files with 88 additions and 12 deletions
@@ -261,31 +261,30 @@ class BPackageManager::UserInteractionHandler {
public: public:
virtual ~UserInteractionHandler(); virtual ~UserInteractionHandler();
virtual void HandleProblems() = 0; virtual void HandleProblems();
virtual void ConfirmChanges(bool fromMostSpecific) = 0; virtual void ConfirmChanges(bool fromMostSpecific);
virtual void Warn(status_t error, const char* format, ...) virtual void Warn(status_t error, const char* format, ...);
= 0;
virtual void ProgressPackageDownloadStarted( virtual void ProgressPackageDownloadStarted(
const char* packageName) = 0; const char* packageName);
virtual void ProgressPackageDownloadActive( virtual void ProgressPackageDownloadActive(
const char* packageName, const char* packageName,
float completionPercentage) = 0; float completionPercentage);
virtual void ProgressPackageDownloadComplete( virtual void ProgressPackageDownloadComplete(
const char* packageName) = 0; const char* packageName);
virtual void ProgressPackageChecksumStarted( virtual void ProgressPackageChecksumStarted(
const char* title) = 0; const char* title);
virtual void ProgressPackageChecksumComplete( virtual void ProgressPackageChecksumComplete(
const char* title) = 0; const char* title);
virtual void ProgressStartApplyingChanges( virtual void ProgressStartApplyingChanges(
InstalledRepository& repository) = 0; InstalledRepository& repository);
virtual void ProgressTransactionCommitted( virtual void ProgressTransactionCommitted(
InstalledRepository& repository, InstalledRepository& repository,
const char* transactionDirectoryName) = 0; const char* transactionDirectoryName);
virtual void ProgressApplyingChangesDone( virtual void ProgressApplyingChangesDone(
InstalledRepository& repository) = 0; InstalledRepository& repository);
}; };
@@ -928,6 +928,83 @@ BPackageManager::UserInteractionHandler::~UserInteractionHandler()
} }
void
BPackageManager::UserInteractionHandler::HandleProblems()
{
throw BAbortedByUserException();
}
void
BPackageManager::UserInteractionHandler::ConfirmChanges(bool fromMostSpecific)
{
throw BAbortedByUserException();
}
void
BPackageManager::UserInteractionHandler::Warn(status_t error,
const char* format, ...)
{
}
void
BPackageManager::UserInteractionHandler::ProgressPackageDownloadStarted(
const char* packageName)
{
}
void
BPackageManager::UserInteractionHandler::ProgressPackageDownloadActive(
const char* packageName, float completionPercentage)
{
}
void
BPackageManager::UserInteractionHandler::ProgressPackageDownloadComplete(
const char* packageName)
{
}
void
BPackageManager::UserInteractionHandler::ProgressPackageChecksumStarted(
const char* title)
{
}
void
BPackageManager::UserInteractionHandler::ProgressPackageChecksumComplete(
const char* title)
{
}
void
BPackageManager::UserInteractionHandler::ProgressStartApplyingChanges(
InstalledRepository& repository)
{
}
void
BPackageManager::UserInteractionHandler::ProgressTransactionCommitted(
InstalledRepository& repository, const char* transactionDirectoryName)
{
}
void
BPackageManager::UserInteractionHandler::ProgressApplyingChangesDone(
InstalledRepository& repository)
{
}
} // namespace BPrivate } // namespace BPrivate
} // namespace BManager } // namespace BManager