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
> 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 > |