summaryrefslogtreecommitdiff
path: root/apt-pkg/packagemanager.h
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2007-06-09 00:19:51 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2007-06-09 00:19:51 +0200
commit408a4726131e9db26ff868623a5d216a26c45a50 (patch)
treea8b470ee8fd8d22e74e1245edb2b36400b9226dd /apt-pkg/packagemanager.h
parent1979e742ad5e2a0b6e547fbe3f4c4066b5a9bd2e (diff)
parent484dbb814fd2b787b2206ffe9504798dfd73ae6c (diff)
* huge merge to bring the apt debian-sid and ubuntu branches as close
as possible to apt--mvo again
Diffstat (limited to 'apt-pkg/packagemanager.h')
-rw-r--r--apt-pkg/packagemanager.h35
1 files changed, 30 insertions, 5 deletions
diff --git a/apt-pkg/packagemanager.h b/apt-pkg/packagemanager.h
index f64637d03..53600fb61 100644
--- a/apt-pkg/packagemanager.h
+++ b/apt-pkg/packagemanager.h
@@ -23,12 +23,11 @@
#ifndef PKGLIB_PACKAGEMANAGER_H
#define PKGLIB_PACKAGEMANAGER_H
-#ifdef __GNUG__
-#pragma interface "apt-pkg/packagemanager.h"
-#endif
#include <string>
+#include <iostream>
#include <apt-pkg/pkgcache.h>
+#include <apt-pkg/depcache.h>
using std::string;
@@ -70,13 +69,39 @@ class pkgPackageManager : protected pkgCache::Namespace
virtual bool Remove(PkgIterator /*Pkg*/,bool /*Purge*/=false) {return false;};
virtual bool Go(int statusFd=-1) {return true;};
virtual void Reset() {};
-
+
+ // the result of the operation
+ OrderResult Res;
+
public:
// Main action members
bool GetArchives(pkgAcquire *Owner,pkgSourceList *Sources,
pkgRecords *Recs);
- OrderResult DoInstall(int statusFd=-1);
+
+ // Do the installation
+ OrderResult DoInstall(int statusFd=-1);
+
+ // stuff that needs to be done before the fork() of a library that
+ // uses apt
+ OrderResult DoInstallPreFork() {
+ Res = OrderInstall();
+ return Res;
+ };
+
+ // stuff that needs to be done after the fork
+ OrderResult DoInstallPostFork(int statusFd=-1) {
+ bool goResult = Go(statusFd);
+ if(goResult == false)
+ return Failed;
+
+ // if all was fine update the state file
+ if(Res == Completed) {
+ Cache.writeStateFile(NULL);
+ }
+ return Res;
+ };
+
bool FixMissing();
pkgPackageManager(pkgDepCache *Cache);