BPackageManager: Abstract installed repository initialization

* Rename TransactionHandler -> InstallationInterface and
  DaemonClientTransactionHandler -> ClientInstallationInterface.
* Add InstallationInterface::InitInstalledRepository(). Use in
  _AddInstalledRepository() to get the repository packages instead of
  using the package roster. The ClientInstallationInterface
  implementation does it that way.
This commit is contained in:
Ingo Weinhold
2013-09-10 19:14:17 +02:00
parent c138f1f2af
commit cf3bb0d753
4 changed files with 42 additions and 28 deletions
@@ -37,8 +37,8 @@ public:
class RemoteRepository;
class InstalledRepository;
class Transaction;
class TransactionHandler;
class DaemonClientTransactionHandler;
class InstallationInterface;
class ClientInstallationInterface;
class UserInteractionHandler;
class RequestHandler;
@@ -122,7 +122,7 @@ protected:
TransactionList fTransactions;
// must be set by the derived class
TransactionHandler* fTransactionHandler;
InstallationInterface* fInstallationInterface;
RequestHandler* fRequestHandler;
UserInteractionHandler* fUserInteractionHandler;
};
@@ -195,9 +195,12 @@ private:
};
class BPackageManager::TransactionHandler {
class BPackageManager::InstallationInterface {
public:
virtual ~TransactionHandler();
virtual ~InstallationInterface();
virtual void InitInstalledRepository(
InstalledRepository& repository) = 0;
virtual status_t PrepareTransaction(Transaction& transaction)
= 0;
@@ -207,11 +210,14 @@ public:
};
class BPackageManager::DaemonClientTransactionHandler
: public TransactionHandler {
class BPackageManager::ClientInstallationInterface
: public InstallationInterface {
public:
DaemonClientTransactionHandler();
virtual ~DaemonClientTransactionHandler();
ClientInstallationInterface();
virtual ~ClientInstallationInterface();
virtual void InitInstalledRepository(
InstalledRepository& repository);
virtual status_t PrepareTransaction(Transaction& transaction);
virtual status_t CommitTransaction(Transaction& transaction,