Go to the documentation of this file.
   31 #include <IceUtil/Handle.h>  
   32 #include <IceUtil/Shared.h>  
   44     class PropertyDefinitionContainer;
 
   77         template <
typename PropertyType>
 
   83         template <
typename PropertyType>
 
   94         void getProperty(std::atomic<T>& val, 
const std::string& name) 
const;
 
  102         template <
class ContainerT>
 
  104                               const std::string& name,
 
  105                               const std::string& splitBy = 
",;",
 
  106                               bool trimElements = 
true,
 
  107                               bool removeEmptyElements = 
true);
 
  111                                         const std::string& splitBy = 
",;",
 
  112                                         bool trimElements = 
true,
 
  113                                         bool removeEmptyElements = 
true);
 
  171         std::unique_ptr<Impl> impl;
 
  178     template <
typename PropertyType>
 
  179     Property<PropertyType>
 
  200             val = getProperty<T>(name).getValue();
 
  209         val = getProperty<T>(name).getValue();
 
  212     template <
class ContainerT>
 
  215                                    const std::string& name,
 
  216                                    const std::string& splitBy,
 
  218                                    bool removeEmptyElements)
 
  221         using ValueT = 
typename ContainerT::value_type;
 
  222         const std::string csv = getProperty<std::string>(name);
 
  223         if constexpr (std::is_same_v<ContainerT, std::vector<std::string>>)
 
  225             val = 
Split(csv, splitBy, trimElements, removeEmptyElements);
 
  229             const auto strvec = 
Split(csv, splitBy, trimElements, removeEmptyElements);
 
  231             for (
const auto& 
str : strvec)
 
  233                 if constexpr (std::is_same_v<ValueT, std::string>)
 
  246     inline std::vector<T>
 
  248                                    const std::string& splitBy,
 
  250                                    bool removeEmptyElements)
 
  
 
virtual void icePropertiesUpdated(const std::set< std::string > &changedProperties)
This method is called when new Properties are set via setIceProperties().
void updateProxies(IceManagerPtr)
virtual void injectPropertyDefinitions(PropertyDefinitionsPtr &)
Called after createPropertyDefinitions by Component to inject propertes of ComponentPlugin.
std::vector< std::string > Split(const std::string &source, const std::string &splitBy, bool trimElements=false, bool removeEmptyElements=false)
bool hasProperty(const std::string &name)
bool tryAddProperty(const std::string &propertyName, const std::string &value)
IceUtil::Handle< class PropertyUser > PropertyUserPtr
PropertyUser smart pointer type.
Property< PropertyType > getProperty(const std::string &name) const
Hack to allow using getProperty in const-modified methods.
std::vector< std::string > getComponentProxyNames()
void getPropertyAsCSV(ContainerT &val, const std::string &name, const std::string &splitBy=",;", bool trimElements=true, bool removeEmptyElements=true)
std::shared_ptr< Value > value()
std::vector< PropertyUserPtr > PropertyUserList
UserProperty list type.
std::vector< std::string > getTopicProxyNames()
Eigen::Vector3f Get(const Eigen::Vector3f &p1, const Eigen::Vector3f &p2, float t)
virtual void updateIceProperties(const std::map< std::string, std::string > &changes)
Provides access to Ice properties with extended capabilities.
virtual PropertyDefinitionsPtr createPropertyDefinitions()=0
Creates the property definition container.
auto emplace(Cont &cont, Params &&... params) -> decltype(cont.emplace_back(std::forward< Params >(params)...))
Property< PropertyType > getProperty(const std::string &name)
Property creation and retrieval.
PropertyDefinitionsPtr getPropertyDefinitions()
Returns the component's property definition container.
Ice::PropertiesPtr getIceProperties() const
Returns the set of Ice properties.
Abstract PropertyUser class.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
virtual void setIceProperties(Ice::PropertiesPtr properties)
Sets the Ice properties.
std::vector< std::string > getSubscribedTopicNames()
This file offers overloads of toIce() and fromIce() functions for STL container types.