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:
virtual ~UserInteractionHandler();
virtual void HandleProblems() = 0;
virtual void ConfirmChanges(bool fromMostSpecific) = 0;
virtual void HandleProblems();
virtual void ConfirmChanges(bool fromMostSpecific);
virtual void Warn(status_t error, const char* format, ...)
= 0;
virtual void Warn(status_t error, const char* format, ...);
virtual void ProgressPackageDownloadStarted(
const char* packageName) = 0;
const char* packageName);
virtual void ProgressPackageDownloadActive(
const char* packageName,
float completionPercentage) = 0;
float completionPercentage);
virtual void ProgressPackageDownloadComplete(
const char* packageName) = 0;
const char* packageName);
virtual void ProgressPackageChecksumStarted(
const char* title) = 0;
const char* title);
virtual void ProgressPackageChecksumComplete(
const char* title) = 0;
const char* title);
virtual void ProgressStartApplyingChanges(
InstalledRepository& repository) = 0;
InstalledRepository& repository);
virtual void ProgressTransactionCommitted(
InstalledRepository& repository,
const char* transactionDirectoryName) = 0;
const char* transactionDirectoryName);
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 BManager