Mailinglist Archive: zypp-devel (68 mails)

< Previous Next >
Re: [zypp-devel] Things TODO in CacheStore
  • From: Duncan Mac-Vicar Prett <dmacvicar@xxxxxxx>
  • Date: Thu, 24 May 2007 12:51:25 +0200
  • Message-id: <200705241251.26112.dmacvicar@xxxxxxx>
On Wednesday 23 May 2007 16:59:52 Jan Kupec wrote:
> Duncan, what i was talking about is storing all the rest of the data
> other than NVRAD and kind in these methods:
>
>   consumePatch()
>   consumePackageAtom()
>   consumeMessage()
>   consumeScript()
>   consumePattern()
>   consumeProduct()
>
> Do you want to code it, or shell i? There is some work on the YUMParser
> stuff yet, but after polishing the code i'm free to do other things.

Go ahead.

I have to update the testsuite later, now that the parsers are ready, I can 
use the YUM or YaST parser for the cache store testcase, beter yum, as it has 
patches.

> FILELISTS AND CHANGELOGS of YUM
> void CacheStore::consumeFilelist( const data::RecordId &catalog_id,
> const data::Resolvable_Ptr & resolvable, const data::Filenames & filenames
> )
>
> This would mean querying the DB for the resolvable of given kind and
> NVRA in given catalog and appending the changelog/filelist to it. You
> said that it is not possible since the kind and NVRA are not unique
> within one catalog?

Yes, you have to pass the record id.

The problem lays in another part.
When I first thought about the ResolvableConsumer interface, I only expected 
to have void consumeSomething() methods that accept a struct, but not method 
that returns ids, because this means the producer (parser) has to keep some 
status. If you need to keep status, then it would not be feasible to 
implement consumers like a logger.

However, YaST metadata needs to fill complete package structs, and then add 
descriptons latter, so it needs to get the id of a consumePackage call.

Perhaps we should move the complete interface of CacheStore to the 
ResolvableConsumer call.

What do you think?

So in your case, the consumePackage would return the id, and then you can fill 
the filelists using this id, then you only need a map of nvra to id, which is 
pretty cheap.

-- 
Duncan Mac-Vicar Prett  
Novell :: SUSE R&D, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)
--
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups
References