-// TEMPLATE_TYPEDEF(std::list<eServiceReference>, eServiceReferenceList);
-
-class iMutableServiceList: public iObject
-{
-#ifdef SWIG
- iMutableServiceList();
- ~iMutableServiceList();
-#endif
-public:
- /* flush changes */
- virtual RESULT flushChanges()=0;
- /* adds a service to a list */
- virtual RESULT addService(eServiceReference &ref, eServiceReference before=eServiceReference())=0;
- /* removes a service from a list */
- virtual RESULT removeService(eServiceReference &ref)=0;
- /* moves a service in a list, only if list suppports a specific sort method. */
- /* pos is the new, absolute position from 0..size-1 */
- virtual RESULT moveService(eServiceReference &ref, int pos)=0;
- /* set name of list, for bouquets this is the visible bouquet name */
- virtual RESULT setListName(const std::string &name)=0;
-};
-
-TEMPLATE_TYPEDEF(ePtr<iMutableServiceList>, iMutableServiceListPtr);
-
-class iListableService: public iObject
-{
-#ifdef SWIG
- iListableService();
- ~iListableService();
-#endif
-public:
- /* legacy interface: get a list */
- virtual RESULT getContent(std::list<eServiceReference> &list, bool sorted=false)=0;
- virtual PyObject *getContent(const char* format, bool sorted=false)=0;
-
- /* new, shiny interface: streaming. */
- virtual SWIG_VOID(RESULT) getNext(eServiceReference &SWIG_OUTPUT)=0;
-
- /* use this for sorting. output is not sorted because of either
- - performance reasons: the whole list must be buffered or
- - the interface would be restricted to a list. streaming
- (as well as a future "active" extension) won't be possible.
- */
- virtual int compareLessEqual(const eServiceReference &, const eServiceReference &)=0;
-
- virtual SWIG_VOID(RESULT) startEdit(ePtr<iMutableServiceList> &SWIG_OUTPUT)=0;
-};
-
-TEMPLATE_TYPEDEF(ePtr<iListableService>, iListableServicePtr);
-