#ifndef __service_h #define __service_h #include #include #include class eServiceCenter; #ifndef SWIG typedef ePtr eServiceCenterPtr; #endif class eServiceCenter: public iServiceHandler { DECLARE_REF(eServiceCenter); std::map > handler; std::map > extensions; static eServiceCenter *instance; #ifdef SWIG eServiceCenter(); ~eServiceCenter(); #endif public: #ifndef SWIG eServiceCenter(); virtual ~eServiceCenter(); int getServiceTypeForExtension(const char *str); int getServiceTypeForExtension(const std::string &str); // iServiceHandler RESULT play(const eServiceReference &, ePtr &ptr); RESULT record(const eServiceReference &, ePtr &ptr); RESULT list(const eServiceReference &, ePtr &ptr); RESULT info(const eServiceReference &, ePtr &ptr); RESULT offlineOperations(const eServiceReference &, ePtr &ptr); // eServiceCenter static RESULT getPrivInstance(ePtr &ptr) { ptr = instance; return 0; } RESULT addServiceFactory(int id, iServiceHandler *hnd, std::list &extensions); RESULT removeServiceFactory(int id); RESULT addFactoryExtension(int id, const char *extension); RESULT removeFactoryExtension(int id, const char *extension); #endif static SWIG_VOID(RESULT) getInstance(ePtr &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; } }; #endif