1 // Copyright 2014 Samsung Electronics Co, Ltd. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef WRT_SERVICE_NODE_EXTENSION_MANAGER_H_
6 #define WRT_SERVICE_NODE_EXTENSION_MANAGER_H_
12 #include "XW_Extension.h"
13 #include "XW_Extension_SyncMessage.h"
14 #include "extension.h"
17 class RuntimeVariableProvider;
20 typedef std::map<std::string, Extension*> ExtensionMap;
22 class ExtensionManager {
24 static ExtensionManager* GetInstance();
26 void RegisterExtensionsInDirectory(RuntimeVariableProvider* provider);
27 void RegisterExtensionsByMetadata(RuntimeVariableProvider* provider);
28 void RegisterExtensionsByMetadata(RuntimeVariableProvider* provider,
29 const std::string& metafile_path);
32 ExtensionMap& extensions() {
38 virtual ~ExtensionManager();
40 bool RegisterExtension(Extension* extension);
42 ExtensionMap extensions_;
44 std::set<std::string> extension_symbols_;
50 #endif // WRT_SERVICE_NODE_EXTENSION_MANAGER_H_