ngc 1.5.0
 
Loading...
Searching...
No Matches
factory.hpp
Go to the documentation of this file.
1
10#ifndef NGC_CORE_RECEIVERS_FACTORY_H_
11#define NGC_CORE_RECEIVERS_FACTORY_H_
12
13#include <string>
14#include <memory>
16
17namespace ngc::core::receivers {
18
24 public:
29 virtual Receiver* GetReceiver() = 0;
30 };
31
39 class Factory {
40 public:
42 Factory(const Factory&) = delete;
43 Factory& operator = (const Factory&) = delete;
44
46 static Factory& Instance() {
47 static Factory factory_instance;
48 return (factory_instance);
49 }
50
55 void SetFactory(std::shared_ptr<ReceiverFactory> factory) {
56 m_factory = factory;
57 }
58
63 std::shared_ptr<ReceiverFactory> GetFactory() {
64 return m_factory;
65 }
66
71 static void Set(std::shared_ptr<ReceiverFactory> factory) {
72 Instance().SetFactory(factory);
73 }
74
79 static std::shared_ptr<ReceiverFactory> Get() {
80 return Instance().GetFactory();
81 }
82
83 protected:
84 private:
86 std::shared_ptr<ReceiverFactory> m_factory;
87
89 Factory() : m_factory(nullptr) {}
90
92 ~Factory() {}
93 };
94
100 std::shared_ptr<ReceiverFactory> GetFactory(std::string receiver_type);
101}
102
103
104#endif /* NGC_CORE_RECEIVERS_FACTORY_H_ */
105
NGC/NGCII core receiver factory singleton.
Definition factory.hpp:39
Factory(const Factory &)=delete
Disables unused constructors and operators.
static std::shared_ptr< ReceiverFactory > Get()
Definition factory.hpp:79
void SetFactory(std::shared_ptr< ReceiverFactory > factory)
Definition factory.hpp:55
static void Set(std::shared_ptr< ReceiverFactory > factory)
Definition factory.hpp:71
Factory & operator=(const Factory &)=delete
static Factory & Instance()
Application singleton instance.
Definition factory.hpp:46
std::shared_ptr< ReceiverFactory > GetFactory()
Definition factory.hpp:63
NGC/NGCII core receiver factory.
Definition factory.hpp:23
virtual Receiver * GetReceiver()=0
NGC/NGCII core receiver bridge class.
Definition receiver.hpp:23
Definition acquisition.cpp:16
std::shared_ptr< ReceiverFactory > GetFactory(std::string receiver_type)
Definition factory.cpp:15
NGC/NGCII core receivers acquisition base class.