3 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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.
21 #include "JSWifiNetworkInfo.h"
25 using namespace WrtDeviceApis::CommonsJavaScript;
26 using namespace WrtDeviceApis::Commons;
27 using namespace Api::Systeminfo;
30 const char* WIFINETWORK_STATUS_PROPERTY = "status";
31 const char* WIFINETWORK_SSID_PROPERTY = "ssid";
32 const char* WIFINETWORK_IPADDRESS_PROPERTY = "ipAddress";
33 const char* WIFINETWORK_SIGNALSTRENGTH_PROPERTY = "signalStrength";
36 JSClassRef JSWifiNetworkInfo::m_classRef = NULL;
38 JSClassDefinition JSWifiNetworkInfo::m_classInfo = {
40 kJSClassAttributeNone,
58 JSStaticValue JSWifiNetworkInfo::m_properties[] = {
59 { WIFINETWORK_STATUS_PROPERTY, getProperty, NULL, kJSPropertyAttributeReadOnly },
60 { WIFINETWORK_SSID_PROPERTY, getProperty, NULL, kJSPropertyAttributeReadOnly },
61 { WIFINETWORK_IPADDRESS_PROPERTY, getProperty, NULL, kJSPropertyAttributeReadOnly },
62 { WIFINETWORK_SIGNALSTRENGTH_PROPERTY, getProperty, NULL, kJSPropertyAttributeReadOnly },
66 const JSClassRef JSWifiNetworkInfo::getClassRef()
69 m_classRef = JSClassCreate(&m_classInfo);
74 const JSClassDefinition* JSWifiNetworkInfo::getClassInfo()
79 void JSWifiNetworkInfo::Initialize(JSContextRef context, JSObjectRef object)
83 void JSWifiNetworkInfo::Finalize(JSObjectRef object)
86 JSWifiNetworkPriv* priv = static_cast<JSWifiNetworkPriv*>(JSObjectGetPrivate(object));
87 JSObjectSetPrivate(object, NULL);
88 LogDebug("Deleting WifiNetworkInfo object");
92 bool JSWifiNetworkInfo::hasProperty(JSContextRef context, JSObjectRef object, JSStringRef propertyName)
94 return JSUtils::hasProperty(m_properties, propertyName);
97 JSObjectRef JSWifiNetworkInfo::createJSObject(JSContextRef context, const Api::Systeminfo::WifiNetworkProperties &wifiNetworkInfo)
100 std::auto_ptr<Api::Systeminfo::WifiNetworkProperties> accProps(new Api::Systeminfo::WifiNetworkProperties(wifiNetworkInfo));
101 JSWifiNetworkPriv *priv = new JSWifiNetworkPriv(context, accProps.get());
103 return JSObjectMake(context, getClassRef(), priv);
106 JSValueRef JSWifiNetworkInfo::getProperty(JSContextRef context, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception)
109 JSWifiNetworkPriv *priv = static_cast<JSWifiNetworkPriv*>(JSObjectGetPrivate(object));
111 LogError("Private object not set.");
112 return JSValueMakeUndefined(context);
117 Api::Systeminfo::WifiNetworkProperties *wifiNetworkInfo = priv->getObject();
118 Converter convert(context);
120 if (JSStringIsEqualToUTF8CString(propertyName, WIFINETWORK_STATUS_PROPERTY)) {
121 return convert.toJSValueRef(wifiNetworkInfo->status);
122 } else if (JSStringIsEqualToUTF8CString(propertyName, WIFINETWORK_SSID_PROPERTY)) {
123 return convert.toJSValueRef(wifiNetworkInfo->ssid);
124 } else if (JSStringIsEqualToUTF8CString(propertyName, WIFINETWORK_IPADDRESS_PROPERTY)) {
125 return convert.toJSValueRef(wifiNetworkInfo->ipAddress);
126 } else if (JSStringIsEqualToUTF8CString(propertyName, WIFINETWORK_SIGNALSTRENGTH_PROPERTY)) {
127 return convert.toJSValueRef(wifiNetworkInfo->signalStrength);
132 LogError("Exception: " << _rethrown_exception.GetMessage());
134 return JSValueMakeUndefined(context);