33 boost::upgrade_lock<boost::shared_mutex> uplck(itsParamMtx);
34 if (itsParameterList.find(param->
name()) != itsParameterList.end())
35 LFATAL(
"Duplicate Parameter Name: " << param->
name());
37 boost::upgrade_to_unique_lock<boost::shared_mutex> ulck(uplck);
38 itsParameterList[param->
name()] = param;
40 LDEBUG(
"Added Parameter [" << param->
name() <<
']');
48 boost::upgrade_lock<boost::shared_mutex> uplck(itsParamMtx);
49 auto itr = itsParameterList.find(param->
name());
51 if (itr == itsParameterList.end())
52 LERROR(
"Parameter " << param->
name() <<
" not owned by this component -- NOT REMOVED");
55 boost::upgrade_to_unique_lock<boost::shared_mutex> ulck(uplck);
56 itsParameterList.erase(itr);
59 LDEBUG(
"Removed Parameter [" << param->
name() <<
']');
67 boost::shared_lock<boost::shared_mutex> _(itsParamMtx);
69 for (
auto const & pl : itsParameterList) pl.second->callbackInitCall();
Base class for Parameter.
virtual std::string const & name() const =0
Get the parameter name.
virtual ~ParameterRegistry()
Virtual destructor for safe inheritance.
void callbackInitCall()
For all parameters that have a callback which has never been called, call it with the default param v...
void removeParameter(ParameterBase *const param)
The Parameter class uses this method to un-register itself on destruction with its owning Component.
void addParameter(ParameterBase *const param)
The Parameter class uses this method to register itself on construction with its owning Component.
#define LFATAL(msg)
Convenience macro for users to print out console or syslog messages, FATAL level.
#define LDEBUG(msg)
Convenience macro for users to print out console or syslog messages, DEBUG level.
#define JEVOIS_TRACE(level)
Trace object.
#define LERROR(msg)
Convenience macro for users to print out console or syslog messages, ERROR level.