aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-11-09 23:31:47 +0100
committerghost <andreas.monzner@multimedia-labs.de>2010-11-09 23:31:47 +0100
commitb2e416ea9717c8f8e0143a90d823125e9b4a57b6 (patch)
tree1a05eb8f2295208d2961deea011c20c95ac1a11e /lib/service
parent2f085dd58effc19da8e5fec68bb5d73b0b64eb3f (diff)
downloadenigma2-b2e416ea9717c8f8e0143a90d823125e9b4a57b6.tar.gz
enigma2-b2e416ea9717c8f8e0143a90d823125e9b4a57b6.zip
add addFactoryExtension/removeFactoryExtension to eServiceCenter
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/service.cpp19
-rw-r--r--lib/service/service.h2
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/service/service.cpp b/lib/service/service.cpp
index eb2757ab..8c674c5e 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<int, std::list<std::string> >::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<int, std::list<std::string> >::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<int, std::list<std::string> >::iterator sit(extensions.begin()); sit != extensions.end(); ++sit)
diff --git a/lib/service/service.h b/lib/service/service.h
index 6f6ab980..ffc7d275 100644
--- a/lib/service/service.h
+++ b/lib/service/service.h
@@ -40,6 +40,8 @@ public:
static RESULT getPrivInstance(ePtr<eServiceCenter> &ptr) { ptr = instance; return 0; }
RESULT addServiceFactory(int id, iServiceHandler *hnd, std::list<std::string> &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<iServiceHandler> &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; }
};