[Aptitude-devel] aptitude-qt VCS usage and code review

Daniel Burrows dburrows at debian.org
Mon Jul 19 15:41:12 UTC 2010


On Sun, Jul 18, 2010 at 12:37:22AM +0200, Piotr Galiszewski <piotr at galiszewski.pl> was heard to say:
> 2010/7/16 Piotr Galiszewski <piotr at galiszewski.pl>:
> > 2010/7/16 Daniel Burrows <dburrows at debian.org>:
> >> On Fri, Jul 16, 2010 at 01:10:43PM +0200, Piotr Galiszewski <piotr at galiszewski.pl> was heard to say:
> [snip]
> >>  You shouldn't have to implement anything or borrow code from generic/.
> >> All you need to do is hand a string to the parse routine, catch any
> >> errors you get back, and the pass the matcher to the match routine.
> >> For input handling, there's a controller/view pair named "search_input"
> >> that will do the parsing for you, so you just operate at the level of
> >> search expressions.
> >>
> >
> > Thanks I will have a look on it
> >
> 
> Unfortunately, I can't use matcher in my case. I have to write
> analogous code, which will match package objects on my view

  Why doesn't this work?

using aptitude::matching::get_match;
using aptitude::matching::pattern;
using aptitude::matching::search_info;
using cwidget::util::ref_ptr;

class aptitude_match_filter : public package_filter
{
  ref_ptr<pattern> p;
  ref_ptr<search_cache> search_info;

public:
  aptitude_match_filter(const ref_ptr<pattern> &_p)
    : p(_p),
      search_info(search_info::create())
  {
  }

  bool matches(package_ptr pkg)
  {
    return get_match(p, pkg.get_pkg(), search_info,
                     *apt_cache_file, *apt_package_records).get() != NULL;
  }
};

  Daniel



More information about the Aptitude-devel mailing list