#include <zypp/Message.h>
#include <zypp/detail/MessageImpl.h>
#include <zypp/detail/PatchImpl.h>
+#include <zypp/Patch.h>
#include <zypp/Package.h>
#include <zypp/detail/PackageImpl.h>
using namespace std;
using namespace zypp;
-DEFINE_PTR_TYPE(MyPatchImpl)
-
class MyPatchImpl : public detail::PatchImpl
{
public:
- MyPatchImpl( std::string name,
- std::list<ResolvablePtr> atoms,
+ MyPatchImpl( detail::PatchImpl::AtomList atoms,
std::string category)
- : PatchImpl (name,
- Edition (),
- Arch ("noarch"))
{
_reboot_needed = false;
_atoms = atoms;
}
};
-IMPL_PTR_TYPE(MyPatchImpl)
-
/******************************************************************
**
{
INT << "===[START]==========================================" << endl;
- PatchImpl::AtomList atoms;
+ detail::PatchImpl::AtomList atoms;
std::string _name( "foo" );
Edition _edition( "1.0", "42" );
Arch _arch( "i386" );
- detail::PackageImplPtr pi( new detail::PackageImpl(_name,_edition,_arch) );
- PackagePtr p (new Package (pi));
+ base::shared_ptr<detail::PackageImpl> pi( new detail::PackageImpl );
+ Package::Ptr p( detail::makeResolvableFromImpl( _name, _edition, _arch, pi ));
atoms.push_back (p);
std::string _name2( "bar" );
Edition _edition2( "1.0", "43" );
Arch _arch2( "noarch" );
- detail::PackageImplPtr pi2(new detail::PackageImpl(_name2,_edition2,_arch2));
- PackagePtr p2 (new Package (pi2));
+ base::shared_ptr<detail::PackageImpl> pi2( new detail::PackageImpl );
+ Package::Ptr p2( detail::makeResolvableFromImpl( _name2, _edition2, _arch2, pi2 ));
atoms.push_back (p2);
- MyPatchImplPtr q (new MyPatchImpl ("patch1", atoms, "recommended"));
- PatchPtr patch1 (new Patch (q));
+ base::shared_ptr<detail::PatchImpl> pt1(new MyPatchImpl(atoms,"recommended"));
+ Patch::Ptr patch1( detail::makeResolvableFromImpl( std::string("patch1"), _edition, _arch, pt1));
- PatchImpl::AtomList atoms2;
+ detail::PatchImpl::AtomList atoms2;
std::string _name3( "msg" );
Arch _arch3( "noarch" );
- detail::MessageImplPtr mi(new detail::MessageImpl(_name3,Edition (),_arch3));
- MessagePtr m (new Message (mi));
- atoms2.push_back (m);
+ base::shared_ptr<detail::MessageImpl> mi( new detail::MessageImpl );
+ Message::Ptr m( detail::makeResolvableFromImpl( _name, _edition, _arch, mi ));
+ atoms.push_back (m);
+
+ base::shared_ptr<detail::PatchImpl> pt2(new MyPatchImpl(atoms,"recommended"));
+ Patch::Ptr patch2( detail::makeResolvableFromImpl( std::string("patch2"), _edition, _arch, pt2));
- MyPatchImplPtr q2 (new MyPatchImpl ("patch2", atoms2, "recommended"));
- PatchPtr patch2 (new Patch (q2));
- list<PatchPtr> patches;
+ list<Patch::Ptr> patches;
patches.push_back (patch1);
patches.push_back (patch2);
levels_to_preselect.insert ("recommended");
// output values
- list<PatchPtr> patches_to_display;
- list<PatchPtr> patches_for_manual;
+ list<Patch::Ptr> patches_to_display;
+ list<Patch::Ptr> patches_for_manual;
// really start here
// count patches to offer
if (interactive_run)
{
- for (list<PatchPtr>::iterator it = patches.begin();
+ for (list<Patch::Ptr>::iterator it = patches.begin();
it != patches.end();
it++)
{
(*it)->select ();
}
DBG << "Running solver here..." << endl; // TODO
- for (list<PatchPtr>::iterator it = patches.begin();
+ for (list<Patch::Ptr>::iterator it = patches.begin();
it != patches.end();
it++)
{
}
// count patches to preselect
- for (list<PatchPtr>::iterator it = patches.begin();
+ for (list<Patch::Ptr>::iterator it = patches.begin();
it != patches.end();
it++)
{
- PatchPtr ptr = *it;
+ Patch::Ptr ptr = *it;
string category = ptr->category ();
// interactive patches can be applied only in interactive mode
if (interactive_run
DBG << "Running solver here..." << endl; // TODO
// hoping resolver solves obsoletes as well
- for (list<PatchPtr>::iterator it = patches.begin();
+ for (list<Patch::Ptr>::iterator it = patches.begin();
it != patches.end();
it++)
{
- PatchPtr ptr = *it;
+ Patch::Ptr ptr = *it;
if (! ptr->any_atom_selected())
{
ptr->select(); // TODO use deselected here instead