]> git.saurik.com Git - apt.git/blobdiff - cmdline/cacheset.h
prefer the Policy if it is built instead of the DepCache and
[apt.git] / cmdline / cacheset.h
index 9c949102069be0b4853d14ae428542dc6d56c337..c8c3dd096dbe349c11c1c3517c15cd20c99b30ad 100644 (file)
@@ -40,12 +40,15 @@ public:                                                                     /*{{{*/
        virtual void showSelectedVersion(pkgCache::PkgIterator const &Pkg, pkgCache::VerIterator const Ver,
                                 string const &ver, bool const &verIsRel) {};
 
+       virtual pkgCache::PkgIterator canNotFindPkgName(pkgCacheFile &Cache, std::string const &str);
        virtual PackageSet canNotFindTask(pkgCacheFile &Cache, std::string pattern);
        virtual PackageSet canNotFindRegEx(pkgCacheFile &Cache, std::string pattern);
        virtual PackageSet canNotFindPackage(pkgCacheFile &Cache, std::string const &str);
        virtual VersionSet canNotFindAllVer(pkgCacheFile &Cache, pkgCache::PkgIterator const &Pkg);
        virtual VersionSet canNotFindInstCandVer(pkgCacheFile &Cache,
                                pkgCache::PkgIterator const &Pkg);
+       virtual VersionSet canNotFindCandInstVer(pkgCacheFile &Cache,
+                               pkgCache::PkgIterator const &Pkg);
        virtual pkgCache::VerIterator canNotFindNewestVer(pkgCacheFile &Cache,
                                pkgCache::PkgIterator const &Pkg);
        virtual pkgCache::VerIterator canNotFindCandidateVer(pkgCacheFile &Cache,
@@ -114,7 +117,7 @@ public:                                                                     /*{{{*/
            packages chosen cause of the given task.
            \param Cache the packages are in
            \param pattern name of the task
-           \param out stream to print the notice to */
+           \param helper responsible for error and message handling */
        static APT::PackageSet FromTask(pkgCacheFile &Cache, std::string pattern, CacheSetHelper &helper);
        static APT::PackageSet FromTask(pkgCacheFile &Cache, std::string const &pattern) {
                CacheSetHelper helper;
@@ -128,7 +131,7 @@ public:                                                                     /*{{{*/
            packages chosen cause of the given package.
            \param Cache the packages are in
            \param pattern regular expression for package names
-           \param out stream to print the notice to */
+           \param helper responsible for error and message handling */
        static APT::PackageSet FromRegEx(pkgCacheFile &Cache, std::string pattern, CacheSetHelper &helper);
        static APT::PackageSet FromRegEx(pkgCacheFile &Cache, std::string const &pattern) {
                CacheSetHelper helper;
@@ -139,20 +142,31 @@ public:                                                                   /*{{{*/
 
            \param Cache the packages are in
            \param string String the package name(s) should be extracted from
-           \param out stream to print various notices to */
+           \param helper responsible for error and message handling */
        static APT::PackageSet FromString(pkgCacheFile &Cache, std::string const &string, CacheSetHelper &helper);
        static APT::PackageSet FromString(pkgCacheFile &Cache, std::string const &string) {
                CacheSetHelper helper;
                return APT::PackageSet::FromString(Cache, string, helper);
        }
 
+       /** \brief returns a package specified by a string
+
+           \param Cache the package is in
+           \param string String the package name should be extracted from
+           \param helper responsible for error and message handling */
+       static pkgCache::PkgIterator FromName(pkgCacheFile &Cache, std::string const &string, CacheSetHelper &helper);
+       static pkgCache::PkgIterator FromName(pkgCacheFile &Cache, std::string const &string) {
+               CacheSetHelper helper;
+               return APT::PackageSet::FromName(Cache, string, helper);
+       }
+
        /** \brief returns all packages specified on the commandline
 
            Get all package names from the commandline and executes regex's if needed.
            No special package command is supported, just plain names.
            \param Cache the packages are in
            \param cmdline Command line the package names should be extracted from
-           \param out stream to print various notices to */
+           \param helper responsible for error and message handling */
        static APT::PackageSet FromCommandLine(pkgCacheFile &Cache, const char **cmdline, CacheSetHelper &helper);
        static APT::PackageSet FromCommandLine(pkgCacheFile &Cache, const char **cmdline) {
                CacheSetHelper helper;
@@ -167,6 +181,17 @@ public:                                                                    /*{{{*/
                Modifier (unsigned short const &id, const char * const alias, Position const &pos) : ID(id), Alias(alias), Pos(pos) {};
        };
 
+       /** \brief group packages by a action modifiers
+
+           At some point it is needed to get from the same commandline
+           different package sets grouped by a modifier. Take
+               apt-get install apt awesome-
+           as an example.
+           \param Cache the packages are in
+           \param cmdline Command line the package names should be extracted from
+           \param mods list of modifiers the method should accept
+           \param fallback the default modifier group for a package
+           \param helper responsible for error and message handling */
        static std::map<unsigned short, PackageSet> GroupedFromCommandLine(
                pkgCacheFile &Cache, const char **cmdline,
                std::list<PackageSet::Modifier> const &mods,
@@ -179,6 +204,15 @@ public:                                                                    /*{{{*/
                return APT::PackageSet::GroupedFromCommandLine(Cache, cmdline,
                                mods, fallback, helper);
        }
+
+       enum Constructor { UNKNOWN, REGEX, TASK };
+       Constructor getConstructor() const { return ConstructedBy; };
+
+       PackageSet() : ConstructedBy(UNKNOWN) {};
+       PackageSet(Constructor const &by) : ConstructedBy(by) {};
+                                                                       /*}}}*/
+private:                                                               /*{{{*/
+       Constructor ConstructedBy;
                                                                        /*}}}*/
 };                                                                     /*}}}*/
 class VersionSet : public std::set<pkgCache::VerIterator> {            /*{{{*/
@@ -255,7 +289,7 @@ public:                                                                     /*{{{*/
            non specifically requested  and executes regex's if needed on names.
            \param Cache the packages and versions are in
            \param cmdline Command line the versions should be extracted from
-           \param out stream to print various notices to */
+           \param helper responsible for error and message handling */
        static APT::VersionSet FromCommandLine(pkgCacheFile &Cache, const char **cmdline,
                        APT::VersionSet::Version const &fallback, CacheSetHelper &helper);
        static APT::VersionSet FromCommandLine(pkgCacheFile &Cache, const char **cmdline,
@@ -268,7 +302,8 @@ public:                                                                     /*{{{*/
        }
 
        static APT::VersionSet FromString(pkgCacheFile &Cache, std::string pkg,
-                       APT::VersionSet::Version const &fallback, CacheSetHelper &helper);
+                       APT::VersionSet::Version const &fallback, CacheSetHelper &helper,
+                       bool const &onlyFromName = false);
        static APT::VersionSet FromString(pkgCacheFile &Cache, std::string pkg,
                        APT::VersionSet::Version const &fallback) {
                CacheSetHelper helper;
@@ -278,6 +313,23 @@ public:                                                                    /*{{{*/
                return APT::VersionSet::FromString(Cache, pkg, CANDINST);
        }
 
+       /** \brief returns all versions specified for the package
+
+           \param Cache the package and versions are in
+           \param P the package in question
+           \param fallback the version(s) you want to get
+           \param helper the helper used for display and error handling */
+       static APT::VersionSet FromPackage(pkgCacheFile &Cache, pkgCache::PkgIterator const &P,
+               VersionSet::Version const &fallback, CacheSetHelper &helper);
+       static APT::VersionSet FromPackage(pkgCacheFile &Cache, pkgCache::PkgIterator const &P,
+                       APT::VersionSet::Version const &fallback) {
+               CacheSetHelper helper;
+               return APT::VersionSet::FromPackage(Cache, P, fallback, helper);
+       }
+       static APT::VersionSet FromPackage(pkgCacheFile &Cache, pkgCache::PkgIterator const &P) {
+               return APT::VersionSet::FromPackage(Cache, P, CANDINST);
+       }
+
        struct Modifier {
                enum Position { NONE, PREFIX, POSTFIX };
                unsigned short ID;
@@ -317,11 +369,6 @@ protected:                                                         /*{{{*/
            \param Pkg we want the installed version from this package */
        static pkgCache::VerIterator getInstalledVer(pkgCacheFile &Cache,
                pkgCache::PkgIterator const &Pkg, CacheSetHelper &helper);
-
-       static void AddSelectedVersion(pkgCacheFile &Cache, VersionSet &verset,
-               pkgCache::PkgIterator const &P, VersionSet::Version const &fallback,
-               CacheSetHelper &helper);
-
                                                                        /*}}}*/
 };                                                                     /*}}}*/
 }