Go to the documentation of this file.
35 inline namespace fundamentals_v2
40 template<
typename _Tp>
48 class ManagedIceObject;
83 return dynamic_cast<T*
>(_parent);
103 template <
class PluginT,
class...ParamsT>
106 static_assert(std::is_base_of_v<ManagedIceObjectPlugin, PluginT>);
108 std::unique_ptr<ManagedIceObjectPlugin>& ptr = this->getPlugin(
typeid(PluginT),
prefix);
114 return static_cast<PluginT*
>(ptr.get());
117 template <
class PluginT,
class...ParamsT>
120 checkOutParameter(targ);
121 targ = this->addPlugin<PluginT>(
prefix, params...);
124 template <
class PluginT,
class...ParamsT>
127 checkOutParameter(targ.get());
134 const std::string&
prefix()
const;
141 static void checkOutParameter(
void* targ);
143 std::unique_ptr<ManagedIceObjectPlugin>& getPlugin(
const std::type_info& typeInfo,
const std::string
prefix =
"");
150 std::vector<ManagedIceObjectPlugin*> _dependsOn;
virtual void postOnExitComponent()
virtual void postOnConnectComponent()
void addPluginDependency(ManagedIceObjectPlugin *dependedOn)
virtual ~ManagedIceObjectPlugin()=default
const std::string & prefix() const
ManagedIceObject & parent()
void addPlugin(std::experimental::observer_ptr< PluginT > &targ, const std::string prefix="", ParamsT &&...params)
observer_ptr< _Tp > make_observer(_Tp *__p) noexcept
PluginT * addPlugin(const std::string prefix="", ParamsT &&...params)
virtual void postOnInitComponent()
virtual void postOnDisconnectComponent()
virtual void preOnExitComponent()
virtual void preOnConnectComponent()
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)
virtual void preOnDisconnectComponent()
bool parentDerives() const
void addPlugin(PluginT *&targ, const std::string prefix="", ParamsT &&...params)
This file offers overloads of toIce() and fromIce() functions for STL container types.