ifw-fcf 7.1.4
Loading...
Searching...
No Matches
deviceMaker.hpp
Go to the documentation of this file.
1
8#ifndef FCF_DEVMGR_COMMON_DEVICEMAKER_HPP
9#define FCF_DEVMGR_COMMON_DEVICEMAKER_HPP
10
11#include <string>
12
15
16
17namespace ifw::fcf {
18 namespace devmgr {
19 namespace common {
20
25 class IDevice;
26 template<typename T>
27 class DeviceMaker : public IDeviceMaker {
28 public:
29
30
39 explicit DeviceMaker(const std::string& key) {
41 }
42
51 virtual std::shared_ptr<IDevice> Create(const std::string& filename,
52 const std::string& name,
53 DataContext& data_ctx) const override {
54 // Create new instance of T using constructor from YAML::Node
55 // Assumes T has a constructor that accepts YAML::Node
56 return std::make_shared<T>(filename, name, data_ctx);
57 }
58 };
59 }
60 }
61}
62#endif // FCF_DEVMGR_COMMON_DEVICEMAKER_HPP
Definition dataContext.hpp:86
static DeviceFactory & Instance()
Get instance of singleton.
Definition deviceFactory.cpp:28
void RegisterMaker(const std::string &key, IDeviceMaker *maker)
Register device maker.
Definition deviceFactory.cpp:36
Definition deviceMaker.hpp:27
DeviceMaker(const std::string &key)
DeviceMaker constructor.
Definition deviceMaker.hpp:39
virtual std::shared_ptr< IDevice > Create(const std::string &filename, const std::string &name, DataContext &data_ctx) const override
Create an instance of a device.
Definition deviceMaker.hpp:51
Definition iDeviceMaker.hpp:26
ActionsEnable class source file.
Definition actionMgr.cpp:28