2 // Tizen Web Device API
3 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
18 #include "GlobalContextManager.h"
26 GlobalContextManager::GlobalContextManager()
30 GlobalContextManager* GlobalContextManager::getInstance()
32 static GlobalContextManager instance;
36 JSContextRef GlobalContextManager::getGlobalContext(JSContextRef ctx)
39 LOGE("local context is NULL");
43 JSObjectRef global = JSContextGetGlobalObject(ctx);
44 ContextMapT::iterator itr = m_contexts.find(global);
45 if(itr == m_contexts.end()) {
46 LOGE("Can not found global Context");
52 bool GlobalContextManager::isAliveGlobalContext(JSContextRef ctx)
58 const JSContextRef context = getGlobalContext(ctx);
59 return context == ctx;
62 void GlobalContextManager::addGlobalContext(JSContextRef ctx)
64 JSObjectRef global = JSContextGetGlobalObject(ctx);
65 ContextMapT::iterator itr = m_contexts.find(global);
66 if(itr != m_contexts.end()) {
67 LOGD("already added global context");
70 m_contexts[global] = ctx;
73 void GlobalContextManager::removeGlobalContext(JSContextRef ctx)
75 JSObjectRef global = JSContextGetGlobalObject(ctx);
76 ContextMapT::iterator itr = m_contexts.find(global);
77 if(itr == m_contexts.end()) {
78 LOGD("does not exist context");
82 if(itr->second == ctx) {
83 m_contexts.erase(itr);
86 LOGE("passed context is not global context");