From b2e416ea9717c8f8e0143a90d823125e9b4a57b6 Mon Sep 17 00:00:00 2001 From: ghost Date: Tue, 9 Nov 2010 23:31:47 +0100 Subject: [PATCH] add addFactoryExtension/removeFactoryExtension to eServiceCenter --- lib/service/service.cpp | 19 +++++++++++++++++++ lib/service/service.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/lib/service/service.cpp b/lib/service/service.cpp index eb2757a..8c674c5 100644 --- a/lib/service/service.cpp +++ b/lib/service/service.cpp @@ -201,6 +201,25 @@ RESULT eServiceCenter::removeServiceFactory(int id) return 0; } +RESULT eServiceCenter::addFactoryExtension(int id, const char *extension) +{ + std::map >::iterator it = extensions.find(id); + if (it == extensions.end()) + return -1; + it->second.push_back(extension); + return 0; +} + +RESULT eServiceCenter::removeFactoryExtension(int id, const char *extension) +{ + std::map >::iterator it = extensions.find(id); + if (it == extensions.end()) + return -1; + it->second.remove(extension); + return 0; +} + + int eServiceCenter::getServiceTypeForExtension(const char *str) { for (std::map >::iterator sit(extensions.begin()); sit != extensions.end(); ++sit) diff --git a/lib/service/service.h b/lib/service/service.h index 6f6ab98..ffc7d27 100644 --- a/lib/service/service.h +++ b/lib/service/service.h @@ -40,6 +40,8 @@ public: 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; } }; -- 2.7.4