diff options
Diffstat (limited to 'apt-pkg/edsp')
-rw-r--r-- | apt-pkg/edsp/edspwriter.cc | 20 | ||||
-rw-r--r-- | apt-pkg/edsp/edspwriter.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/apt-pkg/edsp/edspwriter.cc b/apt-pkg/edsp/edspwriter.cc index 38d0d82c5..ea46065c2 100644 --- a/apt-pkg/edsp/edspwriter.cc +++ b/apt-pkg/edsp/edspwriter.cc @@ -128,3 +128,23 @@ bool edspWriter::WriteRequest(pkgDepCache &Cache, FILE* output) return true; } /*}}}*/ +// edspWriter::WriteSolution - to the given file descriptor /*{{{*/ +bool edspWriter::WriteSolution(pkgDepCache &Cache, FILE* output) +{ + bool const Debug = _config->FindB("Debug::EDSPWriter::WriteSolution", false); + for (pkgCache::PkgIterator Pkg = Cache.PkgBegin(); Pkg.end() == false; ++Pkg) + { + if (Cache[Pkg].Delete() == true) + fprintf(output, "Remove: %d\n", Cache.GetCandidateVer(Pkg)->ID); + else if (Cache[Pkg].NewInstall() == true || Cache[Pkg].Upgrade() == true) + fprintf(output, "Install: %d\n", Cache.GetCandidateVer(Pkg)->ID); + else + continue; + if (Debug == true) + fprintf(output, "Package: %s\nVersion: %s\n", Pkg.FullName().c_str(), Cache.GetCandidateVer(Pkg).VerStr()); + fprintf(output, "\n"); + } + + return true; +} + /*}}}*/ diff --git a/apt-pkg/edsp/edspwriter.h b/apt-pkg/edsp/edspwriter.h index 52923ff73..c42dfd398 100644 --- a/apt-pkg/edsp/edspwriter.h +++ b/apt-pkg/edsp/edspwriter.h @@ -14,6 +14,7 @@ class edspWriter /*{{{*/ public: bool static WriteUniverse(pkgDepCache &Cache, FILE* output); bool static WriteRequest(pkgDepCache &Cache, FILE* output); + bool static WriteSolution(pkgDepCache &Cache, FILE* output); }; /*}}}*/ #endif |