Go to the documentation of this file.
35 inline namespace fundamentals_v2
40 template <
typename _Tp>
47 class ManagedIceObject;
107 return dynamic_cast<T*
>(_parent);
129 template <
class PluginT,
class... ParamsT>
133 static_assert(std::is_base_of_v<ManagedIceObjectPlugin, PluginT>);
135 std::unique_ptr<ManagedIceObjectPlugin>& ptr = this->getPlugin(
typeid(PluginT),
prefix);
141 return static_cast<PluginT*
>(ptr.get());
144 template <
class PluginT,
class... ParamsT>
148 checkOutParameter(targ);
149 targ = this->addPlugin<PluginT>(
prefix, params...);
152 template <
class PluginT,
class... ParamsT>
155 const std::string
prefix =
"",
158 checkOutParameter(targ.get());
166 const std::string&
prefix()
const;
172 static void checkOutParameter(
void* targ);
174 std::unique_ptr<ManagedIceObjectPlugin>& getPlugin(
const std::type_info& typeInfo,
175 const std::string
prefix =
"");
181 std::vector<ManagedIceObjectPlugin*> _dependsOn;
virtual void postOnExitComponent()
virtual void postOnConnectComponent()
void addPluginDependency(ManagedIceObjectPlugin *dependedOn)
virtual ~ManagedIceObjectPlugin()=default
const std::string & prefix() const
ManagedIceObject & parent()
PluginT * addPlugin(const std::string prefix="", ParamsT &&... params)
observer_ptr< _Tp > make_observer(_Tp *__p) noexcept
virtual void postOnInitComponent()
virtual void postOnDisconnectComponent()
virtual void preOnExitComponent()
virtual void preOnConnectComponent()
void addPlugin(PluginT *&targ, const std::string prefix="", ParamsT &&... params)
The ManagedIceObject is the base class for all ArmarX objects.
virtual void preOnInitComponent()
ManagedIceObjectPlugin(ManagedIceObject &parent, std::string pre)
std::string makePropertyName(const std::string &name)
void addPlugin(std::experimental::observer_ptr< PluginT > &targ, const std::string prefix="", ParamsT &&... params)
virtual void preOnDisconnectComponent()
bool parentDerives() const
This file offers overloads of toIce() and fromIce() functions for STL container types.