Go to the documentation of this file.
28 #include <type_traits>
35 #include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
44 #include <armarx/control/core/Controller.h>
45 #include <armarx/control/memory/config/Reader.h>
46 #include <armarx/control/memory/config/Writer.h>
48 #include <armarx/control/interface/ConfigurableNJointControllerInterface.h>
53 class MemoryNameSystem;
63 class RobotUnitComponentPlugin;
81 template <
auto T,
typename... Args>
86 using BuilderT = decltype(concreteControllerBuilder<T>(args...));
90 "This controller type is not supported at the moment!");
92 return concreteControllerBuilder<T>(args...);
99 return createControllerBuilder<T>(robotUnitPlugin->
getRobotUnit(),
100 configReader.value(),
101 configWriter.value(),
108 return *robotUnitPlugin;
116 memory::config::Reader&
120 return configReader.value();
123 memory::config::Writer&
127 return configWriter.value();
131 template <
auto T,
typename... Args>
133 concreteControllerBuilder(Args... args)
139 std::optional<memory::config::Reader> configReader;
140 std::optional<memory::config::Writer> configWriter;
~ComponentPluginUser() override
const std::string & prefix() const
ManagedIceObject & parent()
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
memory::config::Writer & configMemoryWriter()
memory::config::Reader & configMemoryReader()
This file is part of ArmarX.
This file is part of ArmarX.
#define ARMARX_CHECK(expression)
Shortcut for ARMARX_CHECK_EXPRESSION.
ComponentPlugin(ManagedIceObject &parent, const std::string &prefix)
std::shared_ptr< Value > value()
This file is part of ArmarX.
void postCreatePropertyDefinitions(armarx::PropertyDefinitionsPtr &properties) override
armarx::plugins::RobotUnitComponentPlugin & getRobotUnitPlugin()
auto createControllerBuilder(Args... args)
ComponentPlugin & getControlComponentPlugin()
auto createControllerBuilder()
~ComponentPlugin() override
The ManagedIceObject is the base class for all ArmarX objects.
This file is part of ArmarX.
armarx::armem::client::plugins::Plugin & getArmemPlugin()
void preOnInitComponent() override
void preOnConnectComponent() override
A component plugin offering client-side access to to the working memory system by providing a Memory ...
RobotUnitInterfacePrx getRobotUnit() const