- Order all objects according to prerequirements, not just packages.
[platform/upstream/libzypp.git] / zypp / Resolvable.cc
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/Resolvable.cc
10  *
11 */
12 #include <iostream>
13
14 #include "zypp/Resolvable.h"
15 #include "zypp/detail/ResolvableImpl.h"
16
17 #include "zypp/ResObject.h"
18 #include "zypp/Source.h"
19
20 using namespace std;
21
22 ///////////////////////////////////////////////////////////////////
23 namespace zypp
24 { /////////////////////////////////////////////////////////////////
25
26   ///////////////////////////////////////////////////////////////////
27   //
28   //    METHOD NAME : Resolvable::Resolvable
29   //    METHOD TYPE : Ctor
30   //
31   Resolvable::Resolvable( const Kind & kind_r,
32                           const NVRAD & nvrad_r )
33   : _pimpl( new Impl( kind_r, nvrad_r ) )
34   {}
35
36   ///////////////////////////////////////////////////////////////////
37   //
38   //    METHOD NAME : Resolvable::~Resolvable
39   //    METHOD TYPE : Dtor
40   //
41   Resolvable::~Resolvable()
42   {}
43
44   ///////////////////////////////////////////////////////////////////
45   //
46   //    Resolvable interface forwarded to implementation
47   //
48   ///////////////////////////////////////////////////////////////////
49
50   std::ostream & Resolvable::dumpOn( std::ostream & str ) const
51   {
52     const ResObject * obj = dynamic_cast<const ResObject *>(this);
53     if ( obj )
54       {
55         str << "[S" << obj->source().numericId() << ":" << obj->sourceMediaNr() << "]";
56       }
57     return _pimpl->dumpOn( str );
58   }
59
60   const Resolvable::Kind & Resolvable::kind() const
61   { return _pimpl->kind(); }
62
63   const std::string & Resolvable::name() const
64   { return _pimpl->name(); }
65
66   const Edition & Resolvable::edition() const
67   { return _pimpl->edition(); }
68
69   const Arch & Resolvable::arch() const
70   { return _pimpl->arch(); }
71
72   const CapSet & Resolvable::dep( Dep which_r ) const
73   { return _pimpl->deps()[which_r]; }
74
75   const Dependencies & Resolvable::deps() const
76   { return _pimpl->deps(); }
77
78
79   void Resolvable::injectProvides( const Capability & cap_r )
80   { return _pimpl->injectProvides( cap_r ); }
81
82   void Resolvable::injectRequires( const Capability & cap_r )
83   { return _pimpl->injectRequires( cap_r ); }
84
85   /////////////////////////////////////////////////////////////////
86 } // namespace zypp
87 ///////////////////////////////////////////////////////////////////