aboutsummaryrefslogtreecommitdiff
path: root/lib/service/service.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/service/service.cpp')
-rw-r--r--lib/service/service.cpp19
1 files changed, 19 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)