trunk 20080912
[gitenigma.git] / include / lib / dvb / servicefile.h
blob43c77fe03ff9735420b9f249988c963adc137f2b
1 #ifndef __lib_dvb_servicefile_h
2 #define __lib_dvb_servicefile_h
4 #include <lib/dvb/service.h>
5 #include <lib/dvb/servicecache.h>
6 #include <list>
8 class eServiceFileHandler: public eServiceHandler
10 eServiceCache<eServiceFileHandler> cache;
11 static eServiceFileHandler *instance;
12 eServiceReference result;
13 public:
15 Signal2<void,void*,const eString &> fileHandlers, directoryHandlers;
16 void addReference(void *node, const eServiceReference &ref);
18 static eServiceFileHandler *getInstance() { return instance; }
19 void loadNode(eServiceCache<eServiceFileHandler>::eNode &node, const eServiceReference &ref);
20 eService *createService(const eServiceReference &node);
22 eServiceFileHandler();
23 ~eServiceFileHandler();
25 // service list functions
26 void enterDirectory(const eServiceReference &dir, Signal1<void,const eServiceReference&> &callback);
27 void leaveDirectory(const eServiceReference &dir);
29 int deleteService(const eServiceReference &dir, const eServiceReference &ref);
31 eService *addRef(const eServiceReference &service);
32 void removeRef(const eServiceReference &service);
34 int lookupService(eServiceReference &, const char *filename);
37 #endif