Author: jkupec Date: Wed May 23 10:11:46 2007 New Revision: 5600 URL: http://svn.opensuse.org/viewcvs/zypp?rev=5600&view=rev Log: consumePackageAtom added to the interface Modified: trunk/libzypp/zypp/data/ResolvableDataConsumer.h trunk/libzypp/zypp2/cache/CacheStore.cpp trunk/libzypp/zypp2/cache/CacheStore.h Modified: trunk/libzypp/zypp/data/ResolvableDataConsumer.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/data/ResolvableDataConsumer.h?rev=5600&r1=5599&r2=5600&view=diff ============================================================================== --- trunk/libzypp/zypp/data/ResolvableDataConsumer.h (original) +++ trunk/libzypp/zypp/data/ResolvableDataConsumer.h Wed May 23 10:11:46 2007 @@ -31,6 +31,7 @@ virtual void consumePackage( const data::RecordId &catalog_id, data::Package_Ptr ) = 0; virtual void consumeProduct( const data::RecordId &catalog_id, data::Product_Ptr ) = 0; virtual void consumePatch( const data::RecordId &catalog_id, data::Patch_Ptr ) = 0; + virtual void consumePackageAtom( const data::RecordId &catalog_id, const data::PackageAtom_Ptr & ) = 0; virtual void consumeMessage( const data::RecordId &catalog_id, data::Message_Ptr ) = 0; virtual void consumeScript( const data::RecordId &catalog_id, data::Script_Ptr ) = 0; virtual void consumePattern( const data::RecordId &catalog_id, data::Pattern_Ptr ) = 0; Modified: trunk/libzypp/zypp2/cache/CacheStore.cpp URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/CacheStore.cpp?rev=5600&r1=5599&r2=5600&view=diff ============================================================================== --- trunk/libzypp/zypp2/cache/CacheStore.cpp (original) +++ trunk/libzypp/zypp2/cache/CacheStore.cpp Wed May 23 10:11:46 2007 @@ -211,33 +211,47 @@ RecordId id = appendResolvable( catalog_id, ResTraits<Patch>::kind, NVRA( patch->name, patch->edition, patch->arch ), patch->deps ); consumeResObject( id, patch ); - /* DBG << "got patch " << patch->name << ", atoms: "; + // cosume atoms for (setdata::ResObject_Ptr::const_iterator p = patch->atoms.begin(); p != patch->atoms.end(); ++p) { - data::Atom_Ptr atom = dynamic_pointer_castdata::Atom(*p); + data::PackageAtom_Ptr atom = dynamic_pointer_castdata::PackageAtom(*p); if (atom) { DBG << atom->name << "(atom) "; + consumePackageAtom(catalog_id, atom); continue; } + data::Script_Ptr script = dynamic_pointer_castdata::Script(*p); if (script) { DBG << script->name << "(script) "; + consumeScript(catalog_id, script); continue; } + data::Message_Ptr message = dynamic_pointer_castdata::Message(*p); if (message) { DBG << message->name << "(message) "; + consumeMessage(catalog_id, message); continue; } - DBG << "!badatom! "; + + ERR << " ignoring !badatom! "; + if (*p) ERR << (*p)->name; + ERR << endl; } + DBG << endl; - */ +} + +void CacheStore::consumePackageAtom( const data::RecordId &catalog_id, const data::PackageAtom_Ptr & atom ) +{ + RecordId id = appendResolvable( catalog_id, ResTraits<Atom>::kind, NVRA( atom->name, atom->edition, atom->arch ), atom->deps ); + consumeResObject( id, atom ); } void CacheStore::consumeMessage( const data::RecordId &catalog_id, data::Message_Ptr message ) Modified: trunk/libzypp/zypp2/cache/CacheStore.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/CacheStore.h?rev=5600&r1=5599&r2=5600&view=diff ============================================================================== --- trunk/libzypp/zypp2/cache/CacheStore.h (original) +++ trunk/libzypp/zypp2/cache/CacheStore.h Wed May 23 10:11:46 2007 @@ -86,7 +86,21 @@ * \param patch Patch data */ virtual void consumePatch( const data::RecordId &catalog_id, data::Patch_Ptr patch); - + + /** + * Implementation of the \ref ResolvableConsumer interface. + * + * Consume a package atom, inserting it in the cache, under + * \a catalog_id ownership. + * + * \param catalog_id record id of catalog to which to append the resolvable. + * \param atom package atom data + * + * \note this is somewhat specific to current YUM patch metadata design + * and may change (to consumeAtom(data::RecordId,data::Atom)). + */ + virtual void consumePackageAtom( const data::RecordId &catalog_id, const data::PackageAtom_Ptr & atom ); + /** * Implementation of the \ref ResolvableConsumer interface * -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org