return m_marked.find(ref) != m_marked.end();
}
+void eListboxServiceContent::markedQueryStart()
+{
+ m_marked_iterator = m_marked.begin();
+}
+
+int eListboxServiceContent::markedQueryNext(eServiceReference &ref)
+{
+ if (m_marked_iterator == m_marked.end())
+ return -1;
+ ref = *m_marked_iterator++;
+ return 0;
+}
+
int eListboxServiceContent::lookupService(const eServiceReference &ref)
{
/* shortcut for cursor */
void addMarked(const eServiceReference &ref);
void removeMarked(const eServiceReference &ref);
int isMarked(const eServiceReference &ref);
- int lookupService(const eServiceReference &ref);
-
+
+ /* this is NOT thread safe! */
+ void markedQueryStart();
+ int markedQueryNext(eServiceReference &ref);
+ int lookupService(const eServiceReference &ref);
+
protected:
void cursorHome();
void cursorEnd();
/* support for marked services */
std::set<eServiceReference> m_marked;
+
+ std::set<eServiceReference>::const_iterator m_marked_iterator;
};
#endif