1#ifndef LINTEL_FEATURE_H
2#define LINTEL_FEATURE_H
24 class ContainerBuilder;
51 const std::shared_ptr<ProcessName> &processName)
59 virtual void initialize(std::shared_ptr<lintel::di::Container> container) = 0;
69 std::shared_ptr<Features> m_features;
82 m_features->registerFeature(
85 [&](std::shared_ptr<lintel::di::Container> container) {
initialize(container); });
95 virtual void initialize(std::shared_ptr<lintel::di::Container> container) = 0;
virtual ~FeatureInterface()=default
virtual void initialize(std::shared_ptr< lintel::di::Container > container)=0
virtual void registerTypes(lintel::di::ContainerBuilder &builder, const std::shared_ptr< Configuration > &configuration, const std::shared_ptr< ProcessName > &processName)
Definition Feature.h:49
virtual std::string_view getName()=0
virtual void registerTypes(lintel::di::ContainerBuilder &builder)=0
virtual ~Feature()=default
std::string_view getName()
Definition Feature.h:99
Feature(T type, std::shared_ptr< Features > features)
Definition Feature.h:79
virtual void registerTypes(lintel::di::ContainerBuilder &builder)=0
virtual void initialize(std::shared_ptr< lintel::di::Container > container)=0
std::string_view m_name
Definition Feature.h:73
Definition Container.h:282
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9