draft backup
[platform/upstream/libzypp.git] / zypp / Resolvable.h
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /**
10  \file  zypp/Resolvable.h
11
12  \brief .
13
14 */
15 #ifndef ZYPP_RESOLVABLE_H
16 #define ZYPP_RESOLVABLE_H
17
18 #include <iosfwd>
19
20 #include "zypp/base/PtrTypes.h"
21
22 ///////////////////////////////////////////////////////////////////
23 namespace zypp
24 { /////////////////////////////////////////////////////////////////
25
26   class ResKind;
27   class ResName;
28   class ResEdition;
29   class ResArch;
30
31   ///////////////////////////////////////////////////////////////////
32   namespace detail
33   { /////////////////////////////////////////////////////////////////
34     /** Hides implementation */
35     class ResolvableImpl;
36     /////////////////////////////////////////////////////////////////
37   } // namespace detail
38   ///////////////////////////////////////////////////////////////////
39
40   ///////////////////////////////////////////////////////////////////
41   //
42   //    CLASS NAME : Resolvable
43   //
44   /** */
45   class Resolvable
46   {
47   public:
48     /** Default ctor */
49     Resolvable();
50     /** Dtor */
51     ~Resolvable();
52   public:
53     /**  */
54     const ResKind & kind() const;
55     /**  */
56     const ResName & name() const;
57     /**  */
58     const ResEdition & edition() const;
59     /**  */
60     const ResArch & arch() const;
61
62   private:
63     /** Pointer to implementation */
64     base::shared_ptr<detail::ResolvableImpl> _pimpl;
65   };
66   ///////////////////////////////////////////////////////////////////
67
68   /** \relates Resolvable Stream output */
69   extern std::ostream & operator<<( std::ostream & str, const Resolvable & obj );
70
71   /////////////////////////////////////////////////////////////////
72 } // namespace zypp
73 ///////////////////////////////////////////////////////////////////
74 #endif // ZYPP_RESOLVABLE_H