7 #ifndef _QITYPE_DETAIL_PROPERTY_HXX_
8 #define _QITYPE_DETAIL_PROPERTY_HXX_
10 #include <boost/thread/locks.hpp>
17 std::pair<AnyReference, bool> conv = v.
convert(_type);
18 if (!conv.first.type())
29 :
SignalF<void(const T&)>(std::move(onsubscribe))
30 , _getter(std::move(getter))
31 , _setter(std::move(setter))
39 :
SignalF<void(const T&)>(std::move(onsubscribe))
40 , _getter(std::move(getter))
41 , _setter(std::move(setter))
42 , _value(defaultValue.to<T>())
50 return _getter(_value);
57 qiLogDebug(
"qitype.property") <<
"set " <<
this <<
" " << (!!_setter);
60 const bool ok = _setter(_value, v);
94 this->setImpl(value.
to<T>());
102 boost::mutex::scoped_lock lock(_mutex);
109 boost::mutex::scoped_lock lock(_mutex);
117 boost::mutex::scoped_lock lock(_mutex);
124 boost::mutex::scoped_lock lock(_mutex);
125 this->setImpl(value.
to<T>());
144 #endif // _QITYPE_DETAIL_PROPERTY_HXX_
FutureSync< AnyValue > value() const override
std::pair< AnyReference, bool > convert(TypeInterface *targetType) const
boost::function< void(bool)> OnSubscribers
FutureSync< void > setValue(AutoAnyReference value) override
ScopedLockReadWrite getLockedReadWrite()
static AnyValue from(const T &r)
FutureSync< T > get() const override
FutureSync< void > setValue(AutoAnyReference value) override
T to() const
Convert to anything or throw trying.
boost::function< T(const T &)> Getter
TypeInterface * type() const
FutureSync< void > set(const T &v) override
PropertyImpl(Getter getter=Getter(), Setter setter=Setter(), SignalBase::OnSubscribers onsubscribe=SignalBase::OnSubscribers())
const char * infoString()
FutureSync< void > set(const T &v) override
FutureSync< void > set(const AnyValue &v) override
boost::function< bool(T &, const T &)> Setter
FutureSync< T > get() const override
ScopedLockReadOnly getLockedReadOnly() const
FutureSync< AnyValue > value() const override