Fixed compilation errors with GCC 4.3 by adding missing includes
[platform/upstream/libzypp.git] / zypp / SystemResObject.h
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/SystemResObject.h
10  *
11 */
12 #ifndef ZYPP_SYSTEMRESOBJECT_H
13 #define ZYPP_SYSTEMRESOBJECT_H
14
15 #include "zypp/ResObject.h"
16
17 ///////////////////////////////////////////////////////////////////
18 namespace zypp
19 { /////////////////////////////////////////////////////////////////
20
21   class SystemResObject;
22
23   ///////////////////////////////////////////////////////////////////
24   namespace detail
25   { /////////////////////////////////////////////////////////////////
26
27     ///////////////////////////////////////////////////////////////////
28     //
29     //  CLASS NAME : SystemResObjectImplIf
30     //
31     /** Abstract SystemResObject implementation interface.
32     */
33     class SystemResObjectImplIf : public ResObjectImplIf
34     {
35     public:
36       typedef SystemResObject ResType;
37     };
38     ///////////////////////////////////////////////////////////////////
39
40     /////////////////////////////////////////////////////////////////
41   } // namespace detail
42   ///////////////////////////////////////////////////////////////////
43
44   ///////////////////////////////////////////////////////////////////
45   //
46   //    CLASS NAME : SystemResObject
47   //
48   /** */
49   class SystemResObject : public ResObject
50   {
51   public:
52     typedef detail::SystemResObjectImplIf Impl;
53     typedef SystemResObject               Self;
54     typedef ResTraits<Self>               TraitsType;
55     typedef TraitsType::PtrType           Ptr;
56     typedef TraitsType::constPtrType      constPtr;
57
58   public:
59     /** Default SystemResObject instance. */
60     static Ptr instance();
61
62   protected:
63     /** Ctor */
64     SystemResObject( const NVRAD & nvrad_r );
65     /** Dtor */
66     virtual ~SystemResObject();
67
68   private:
69     /** Access implementation */
70     virtual Impl & pimpl() = 0;
71     /** Access implementation */
72     virtual const Impl & pimpl() const = 0;
73   };
74   ///////////////////////////////////////////////////////////////////
75
76   /////////////////////////////////////////////////////////////////
77 } // namespace zypp
78 ///////////////////////////////////////////////////////////////////
79 #endif // ZYPP_SYSTEMRESOBJECT_H