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"
23 #define LOG_TAG "TIZEN_DEVICEAPI"
30 GlobalContextManager::GlobalContextManager(){
33 GlobalContextManager* GlobalContextManager::getInstance(){
34 static GlobalContextManager instance;
38 JSContextRef GlobalContextManager::getGlobalContext(JSContextRef ctx){
40 LOGE("local context is NULL");
43 JSObjectRef global = JSContextGetGlobalObject(ctx);
44 ContextMapT::iterator itr;
45 itr = mContexts.find(global);
46 if( itr == mContexts.end() ){
47 LOGE("Can not found global Context");
53 bool GlobalContextManager::isAliveGlobalContext(JSContextRef ctx){
57 JSContextRef context = getGlobalContext(ctx);
65 void GlobalContextManager::addGlobalContext(JSContextRef ctx){
66 ContextMapT::iterator itr;
67 JSObjectRef global = JSContextGetGlobalObject(ctx);
68 itr = mContexts.find(global);
69 if( itr != mContexts.end() ){
70 LOGD("already added global context");
73 mContexts[global] = ctx;
76 void GlobalContextManager::removeGlobalContext(JSContextRef ctx){
77 ContextMapT::iterator itr;
78 JSObjectRef global = JSContextGetGlobalObject(ctx);
79 itr = mContexts.find(global);
80 if( itr == mContexts.end() ){
81 LOGD("does not exist context");
84 if( itr->second == ctx )
87 LOGE("passed context is not global context");