libzypp  17.32.5
context.cc
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
9 #include "private/context_p.h"
10 #include <zypp/ZYppFactory.h>
12 #include <zypp-core/zyppng/base/EventLoop>
13 #include <zypp-media/ng/Provide>
14 
15 namespace zyppng {
16 
17  ZYPP_IMPL_PRIVATE( Context )
18 
20  : UserInterface( *new ContextPrivate( *this ) )
21  {
22  Z_D();
23  d->_zyppPtr = zypp::getZYpp();
24  d->_eventDispatcher = ThreadData::current().ensureDispatcher();
25 
26  d->_provider = Provide::create( d->_providerDir );
27 
28  // @TODO should start be implicit as soon as something is enqueued?
29  d->_provider->start();
30  }
31 
32  ProvideRef Context::provider() const
33  {
34  Z_D();
35  return d->_provider;
36  }
37 
39  {
40  return d_func()->_zyppPtr->keyRing();
41  }
42 
44  {
45  return zypp::ZConfig::instance();
46  }
47 
48  void Context::executeImpl(const AsyncOpBaseRef& op)
49  {
50  auto loop = EventLoop::create();
51  op->sigReady().connect([&](){
52  loop->quit();
53  });
54  loop->run();
55  return;
56  }
57 }
zypp::ZConfig & config()
Definition: context.cc:43
static ZConfig & instance()
Singleton ctor.
Definition: ZConfig.cc:925
ProvideRef provider() const
Definition: context.cc:32
KeyRingRef keyRing() const
Definition: context.cc:38
ZYPP_IMPL_PRIVATE_CONSTR(Context)
Definition: context.cc:19
static ProvideRef create(const zypp::Pathname &workDir="")
Definition: provide.cc:972
zypp::KeyRing_Ptr KeyRingRef
Definition: context.h:29
#define Z_D()
Definition: zyppglobal.h:104
Interim helper class to collect global options and settings.
Definition: ZConfig.h:63
static Ptr create()
static ThreadData & current()
Definition: threaddata.cc:16
std::shared_ptr< EventDispatcher > ensureDispatcher()
Definition: threaddata.cc:32
void executeImpl(const AsyncOpBaseRef &op)
Definition: context.cc:48
ZYPP_IMPL_PRIVATE(UnixSignalSource)