51 template <
class O,
class V>
60 void setParam(O* obj,
const V& val);
61 bool setParamIfValueIs(O* obj,
const V& curval,
const V& newval );
65 const V& getParam(
const O* obj)
const;
66 bool hasParam(
const O* obj)
const;
67 void removeParam(O* obj);
79 template <
class O,
class V>
84 if ( objects_.size() )
86 std::cerr <<
"(PE) HiddenParam | Deleting a HiddenParam prematurely\n";
92 template <
class O,
class V>
96 const int idx = objects_.indexOf( obj );
108 template <
class O,
class V>
113 const int idx = objects_.indexOf( obj );
121 if ( params_[idx]==curval )
123 params_[idx] = newval;
131 template <
class O,
class V>
135 const int idx = objects_.indexOf( obj );
136 if ( !objects_.validIdx(idx) )
146 template <
class O,
class V>
150 return objects_.isPresent( obj );
155 template <
class O,
class V>
159 const int idx = objects_.indexOf( obj );
163 params_.removeSingle( idx );
164 objects_.removeSingle( idx );
~HiddenParam()
Definition: hiddenparam.h:80
Locks the lock, shutting out access from other threads if needed.
Definition: threadlock.h:83
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
Workaround manager when you cannot add class members to a class due to binary compability issues...
Definition: hiddenparam.h:52
TypeSet< V > params_
Definition: hiddenparam.h:72
void removeParam(O *obj)
Definition: hiddenparam.h:156
const V & getParam(const O *obj) const
Definition: hiddenparam.h:132
V undef_
Definition: hiddenparam.h:74
Threads::Lock lock_
Definition: hiddenparam.h:73
ObjectSet< O > objects_
Definition: hiddenparam.h:71
bool hasParam(const O *obj) const
Definition: hiddenparam.h:147
#define mClass(module)
Definition: commondefs.h:161
void setParam(O *obj, const V &val)
Definition: hiddenparam.h:93
#define pErrMsg(msg)
Usual access point for programmer error messages.
Definition: errmsg.h:34
HiddenParam(const V &undefval)
Definition: hiddenparam.h:55
bool setParamIfValueIs(O *obj, const V &curval, const V &newval)
Definition: hiddenparam.h:109