Skip to content

Commit ff1df8f

Browse files
committed
Removed plugin cache from factory objects
1 parent 762c71e commit ff1df8f

File tree

4 files changed

+11
-27
lines changed

4 files changed

+11
-27
lines changed

noether_gui/include/noether_gui/plugin_interface.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,6 @@ class WidgetFactory : public Factory
159159
BaseWidget* createToolPathModifierWidget(const std::string& name,
160160
const YAML::Node& config = {},
161161
QWidget* parent = nullptr) const;
162-
163-
private:
164-
mutable std::map<std::string, WidgetPlugin::Ptr> widget_plugins_;
165162
};
166163

167164
} // namespace noether

noether_gui/src/plugin_interface.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,9 @@ WidgetFactory::WidgetFactory(std::shared_ptr<const boost_plugin_loader::PluginLo
3030
template <typename PluginT>
3131
BaseWidget* WidgetFactory::createWidget(const std::string& name, const YAML::Node& config, QWidget* parent) const
3232
{
33-
if (widget_plugins_.find(name) == widget_plugins_.end())
34-
widget_plugins_[name] = loader_->createInstance<PluginT>(name);
35-
33+
auto plugin = loader_->createInstance<PluginT>(name);
3634
auto this_shared = std::shared_ptr<const WidgetFactory>(this, [](const WidgetFactory*) {});
37-
return widget_plugins_[name]->create(config, this_shared, parent);
35+
return plugin->create(config, this_shared, parent);
3836
}
3937

4038
BaseWidget* WidgetFactory::createMeshModifierWidget(const std::string& name,

noether_tpp/include/noether_tpp/plugin_interface.h

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,8 @@ class Factory
124124
protected:
125125
std::shared_ptr<const boost_plugin_loader::PluginLoader> loader_;
126126

127-
private:
128127
template <typename PluginT>
129-
typename PluginT::ComponentT::Ptr create(std::map<std::string, typename PluginT::Ptr>& plugin_map,
130-
const YAML::Node& config) const;
131-
132-
mutable std::map<std::string, MeshModifierPlugin::Ptr> mesh_modifier_plugins_;
133-
mutable std::map<std::string, ToolPathPlannerPlugin::Ptr> tool_path_planner_plugins_;
134-
mutable std::map<std::string, DirectionGeneratorPlugin::Ptr> direction_generator_plugins_;
135-
mutable std::map<std::string, OriginGeneratorPlugin::Ptr> origin_generator_plugins_;
136-
mutable std::map<std::string, ToolPathModifierPlugin::Ptr> tool_path_modifier_plugins_;
128+
typename PluginT::ComponentT::Ptr create(const YAML::Node& config) const;
137129
};
138130

139131
} // namespace noether

noether_tpp/src/plugin_interface.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,40 +61,37 @@ Factory::Factory()
6161
Factory::Factory(std::shared_ptr<const boost_plugin_loader::PluginLoader> loader) : loader_(loader) {}
6262

6363
template <typename PluginT>
64-
typename PluginT::ComponentT::Ptr Factory::create(std::map<std::string, typename PluginT::Ptr>& plugin_map,
65-
const YAML::Node& config) const
64+
typename PluginT::ComponentT::Ptr Factory::create(const YAML::Node& config) const
6665
{
6766
auto name = YAML::getMember<std::string>(config, "name");
68-
if (plugin_map.find(name) == plugin_map.end())
69-
plugin_map[name] = loader_->createInstance<PluginT>(name);
70-
67+
auto plugin = loader_->createInstance<PluginT>(name);
7168
auto this_shared = std::shared_ptr<const Factory>(this, [](const Factory*) {});
72-
return plugin_map[name]->create(config, this_shared);
69+
return plugin->create(config, this_shared);
7370
}
7471

7572
MeshModifier::Ptr Factory::createMeshModifier(const YAML::Node& config) const
7673
{
77-
return create<MeshModifierPlugin>(mesh_modifier_plugins_, config);
74+
return create<MeshModifierPlugin>(config);
7875
}
7976

8077
ToolPathPlanner::Ptr Factory::createToolPathPlanner(const YAML::Node& config) const
8178
{
82-
return create<ToolPathPlannerPlugin>(tool_path_planner_plugins_, config);
79+
return create<ToolPathPlannerPlugin>(config);
8380
}
8481

8582
OriginGenerator::Ptr Factory::createOriginGenerator(const YAML::Node& config) const
8683
{
87-
return create<OriginGeneratorPlugin>(origin_generator_plugins_, config);
84+
return create<OriginGeneratorPlugin>(config);
8885
}
8986

9087
DirectionGenerator::Ptr Factory::createDirectionGenerator(const YAML::Node& config) const
9188
{
92-
return create<DirectionGeneratorPlugin>(direction_generator_plugins_, config);
89+
return create<DirectionGeneratorPlugin>(config);
9390
}
9491

9592
ToolPathModifier::Ptr Factory::createToolPathModifier(const YAML::Node& config) const
9693
{
97-
return create<ToolPathModifierPlugin>(tool_path_modifier_plugins_, config);
94+
return create<ToolPathModifierPlugin>(config);
9895
}
9996

10097
template std::vector<std::string> Factory::getAvailablePlugins<MeshModifierPlugin>() const;

0 commit comments

Comments
 (0)