2 // Tizen Web Device API
3 // Copyright (c) 2012 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 "NetworkBearerSelectionResponseDispatcher.h"
19 #include "JSNetworkBearerSelectionCallbackManager.h"
20 #include <CommonsJavaScript/JSCallbackManager.h>
21 #include <JSTizenException.h>
22 #include <JSTizenExceptionFactory.h>
25 using namespace DeviceAPI::Common;
26 using namespace WrtDeviceApis::Commons;
27 using namespace WrtDeviceApis::CommonsJavaScript;
30 namespace NetworkBearerSelection {
32 NetworkBearerSelectionResponseDispatcher& NetworkBearerSelectionResponseDispatcher::getInstance()
34 static NetworkBearerSelectionResponseDispatcher instance;
38 NetworkBearerSelectionResponseDispatcher::NetworkBearerSelectionResponseDispatcher() :
39 NetworkBearerSelectionEventAnswerReceiverRequest(ThreadEnum::NULL_THREAD),
40 NetworkBearerReleaseEventAnswerReceiverRequest(ThreadEnum::NULL_THREAD),
41 OnNetworkBearerSelectionStateChangedListener(ThreadEnum::NULL_THREAD)
45 NetworkBearerSelectionResponseDispatcher::~NetworkBearerSelectionResponseDispatcher()
49 void NetworkBearerSelectionResponseDispatcher::OnAnswerReceived(const EventNetworkBearerSelectionPtr &event)
54 void NetworkBearerSelectionResponseDispatcher::OnAnswerReceived(const EventNetworkBearerReleasePtr &event)
57 JSCallbackManagerPtr callbackManager = DPL::StaticPointerCast<JSCallbackManager >(event->getPrivateData());
59 if (!callbackManager) {
60 LoggerE("No listener callback!");
64 JSContextRef gContext = callbackManager->getContext();
65 JSValueRef error = NULL;
67 if (ExceptionCodes::None != event->getExceptionCode())
69 switch (event->getExceptionCode())
71 case ExceptionCodes::PlatformException:
72 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::UNKNOWN_ERROR, "Internal error");
74 case ExceptionCodes::NotFoundException:
75 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::NOT_FOUND_ERROR, "record not found");
77 case ExceptionCodes::InvalidArgumentException:
78 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::INVALID_VALUES_ERROR, "DomainName is not setted");
80 case ExceptionCodes::ConversionException:
81 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong argument");
84 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::UNKNOWN_ERROR, "Unknown error");
88 callbackManager->callOnError(error);
91 callbackManager->callOnSuccess();
95 void NetworkBearerSelectionResponseDispatcher::onAnswerReceived(const OnNetworkBearerSelectionStateChangedPtr& event)
98 JSNetworkBearerSelectionCallbackManagerPtr callbackManager = DPL::StaticPointerCast<JSNetworkBearerSelectionCallbackManager>(event->getPrivateData());
100 if (!callbackManager) {
101 LoggerE("No listener callback!");
107 if (event->getConnectionStateType() == CONNECTION_STATE_CONNECTED) {
108 LoggerD("success callback");
109 callbackManager->callOnSuccess();
110 } else if (event->getConnectionStateType() == CONNECTION_STATE_DISCONNECTED) {
111 LoggerD("disconnect callback");
112 callbackManager->callOnDisconnected();
113 } else if (event->getConnectionStateType() == CONNECTION_STATE_INVALID_VALUES_ERROR || event->getConnectionStateType() == CONNECTION_STATE_PLATFORM_ERROR) {
114 JSContextRef gContext = callbackManager->getContext();
115 JSValueRef error = NULL;
117 if (ExceptionCodes::None != event->getExceptionCode())
119 switch (event->getExceptionCode())
121 case ExceptionCodes::PlatformException:
122 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::UNKNOWN_ERROR, "Internal error");
124 case ExceptionCodes::NotFoundException:
125 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::NOT_FOUND_ERROR, "record not found");
127 case ExceptionCodes::InvalidArgumentException:
128 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::INVALID_VALUES_ERROR, "Invalid values error");
130 case ExceptionCodes::ConversionException:
131 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong argument");
134 error = JSTizenExceptionFactory::makeErrorObject(gContext, JSTizenException::UNKNOWN_ERROR, "Unknown error");
138 callbackManager->callOnError(error);
141 LoggerD("error callback");
146 LoggerE("Error during processing answer.");