16 m_watcher = dataLink->
watcher();
22 m_observer->setEventSubscription(filter);
23 if (m_watcher && m_watcher->isConnected())
29 void CGenericListObserver::reconstruct()
31 m_observer->requestAsync(m_observer->eventSubscription(), [
this](
const CVariant &list) {
32 QMutexLocker lock(&m_listMutex);
33 m_list = list.value<CVariantList>();
35 onGenericElementsReplaced(allValues());
48 return m_list.removeIf(
49 [filter = m_observer->eventSubscription()](
const CVariant &value) { return !value.matches(filter); });
52 void CGenericListObserver::handleEvent(
const CVariant ¶m)
57 onGenericElementAdded(param);
void push_back(const T &value)
Appends an element at the end of the sequence.
Wrapper around QVariant which provides transparent access to CValueObject methods of the contained ob...
Value object encapsulating a list of variants.
void connected()
Connection established.
int cleanValues()
Remove any old values that no longer match the filter.
void setFilter(const CVariant &filter)
Set list filter as variant.
virtual void initialize(IDataLink *)
Subscribe using the given transport mechanism.
CVariantList allValues() const
Get filtered list value as variant list.
Interface that provides a transport mechanism for sharing state.
CDataLinkConnectionWatcher * watcher()
Get a connection status watcher.
virtual void subscribe(const CPassiveObserver *observer)=0
Register an observer with this transport mechanism.
Utilities for sharing state between multiple objects.
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)