19 #include "IqrfLogging.h" 46 auto found = m_fceMap.find(fceName);
47 if (found != m_fceMap.end()) {
61 auto inserted = m_fceMap.insert(make_pair(fceName, fcePtr));
62 if (!inserted.second) {
63 std::cerr << PAR(fceName) <<
": is already stored. The binary isn't probably correctly linked" << std::endl;
64 THROW_EX(std::logic_error, PAR(fceName) <<
": is already stored. The binary isn't probably correctly linked");
70 std::map<std::string, void*> m_fceMap;
83 #define INIT_COMPONENT(IComponentClassName, ComponentClassName) \ 84 std::unique_ptr<IComponentClassName> __launch_create_##ComponentClassName(const std::string& iname) { \ 85 return std::unique_ptr<IComponentClassName>(new ComponentClassName(iname)); } \ 87 class __Loader_##ComponentClassName { \ 89 __Loader_##ComponentClassName() { \ 90 StaticBuildFunctionMap::get().setFunction("__launch_create_" #ComponentClassName, \ 91 (void*)&__launch_create_##ComponentClassName); \ 95 void init_##ComponentClassName() { \ 96 static __Loader_##ComponentClassName cs; \ void setFunction(const std::string &fceName, void *fcePtr)
Set pointer to function.
Definition: LaunchUtils.h:59
virtual ~StaticBuildFunctionMap()
Definition: LaunchUtils.h:36
Holds pointers to component loader functions.
Definition: LaunchUtils.h:26
void * getFunction(const std::string &fceName) const
Get pointer to function.
Definition: LaunchUtils.h:44