AusweisApp2
Initializer.h
gehe zur Dokumentation dieser Datei
1 /*
2  * \brief Initializer to register a lambda that will be executed if QCoreApplication is ready.
3  *
4  * \copyright Copyright (c) 2017-2020 Governikus GmbH & Co. KG, Germany
5  */
6 
7 #pragma once
8 
9 #include <functional>
10 #include <list>
11 
12 class test_Initializer;
13 
14 namespace governikus
15 {
16 
18 {
19  private:
20  friend class ::test_Initializer;
21  std::list<std::function<void()>> mRegisteredFunctions;
22 
23  protected:
24  Initializer() = default;
25  ~Initializer() = default;
26 
27  public:
28  static Initializer& getInstance();
29 
30  struct Entry final
31  {
32  explicit Entry(const std::function<void()>& pRegister)
33  {
34  Initializer::getInstance().add(pRegister);
35  }
36 
37 
38  Entry(const Entry& pCopy) = delete;
39  Entry(const Entry&& pCopy) = delete;
40  Entry& operator=(const Entry& pCopy) = delete;
41  Entry& operator=(const Entry&& pCopy) = delete;
42  };
43 
44  void init(); // No need to call this!
45  void add(const std::function<void()>& pRegister);
46 };
47 
48 } // namespace governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
void add(const std::function< void()> &pRegister)
Definition: Initializer.cpp:29
Definition: Initializer.h:17
static Initializer & getInstance()
Entry & operator=(const Entry &pCopy)=delete
Entry(const std::function< void()> &pRegister)
Definition: Initializer.h:32
void init()
Definition: Initializer.cpp:20
Definition: Initializer.h:30
Definition: test_Initializer.cpp:13