- Create the cache directly from the schema (installed) file.
[platform/upstream/libzypp.git] / zypp / SystemResObject.cc
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/SystemResObject.cc
10  *
11 */
12 //#include <iostream>
13 //#include "zypp/base/Logger.h"
14
15 #include "zypp/SystemResObject.h"
16 #include "zypp/CapFactory.h"
17
18 using std::endl;
19
20 ///////////////////////////////////////////////////////////////////
21 namespace zypp
22 { /////////////////////////////////////////////////////////////////
23
24   ///////////////////////////////////////////////////////////////////
25   //
26   //    METHOD NAME : SystemResObject::SystemResObject
27   //    METHOD TYPE : Ctor
28   //
29   SystemResObject::SystemResObject( const NVRAD & nvrad_r )
30   : ResObject( TraitsType::kind, nvrad_r )
31   {}
32
33   ///////////////////////////////////////////////////////////////////
34   //
35   //    METHOD NAME : SystemResObject::~SystemResObject
36   //    METHOD TYPE : Dtor
37   //
38   SystemResObject::~SystemResObject()
39   {}
40
41   ///////////////////////////////////////////////////////////////////
42   //
43   //    METHOD NAME : SystemResObject::instance()
44   //    METHOD TYPE : SystemResObject::Ptr
45   //
46   SystemResObject::Ptr SystemResObject::instance()
47   {
48     static Ptr _ptr;
49     if ( ! _ptr )
50       {
51         NVRAD dataCollect( "system" );
52         dataCollect[Dep::PROVIDES].insert( CapFactory().halEvalCap() );
53         dataCollect[Dep::PROVIDES].insert( CapFactory().modaliasEvalCap() );
54
55         detail::ResImplTraits<detail::SystemResObjectImplIf>::Ptr sysImpl;
56         _ptr = detail::makeResolvableAndImpl( dataCollect, sysImpl );
57       }
58
59     return _ptr;
60   }
61   /////////////////////////////////////////////////////////////////
62 } // namespace zypp
63 ///////////////////////////////////////////////////////////////////