2 // Open Service Platform
3 // Copyright (c) 2012-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 * @file FNet_FNet_DnsManagedNetConnectionEventListener.cpp
19 * @brief This is the implementation file for _DnsManagedNetConnectionEventListener class.
22 * This file contains the implementation of _DnsManagedNetConnectionEventListener class.
25 #include <unique_ptr.h>
26 #include <FBaseObject.h>
27 #include <FBaseResult.h>
28 #include <FBaseString.h>
29 #include <FNetManagedNetConnection.h>
30 #include <FBaseSysLog.h>
31 #include "FNet_NetTypes.h"
32 #include "FNet_DnsRequestHandler.h"
33 #include "FNet_DnsManagedNetConnectionEventListener.h"
36 using namespace Tizen::Base;
37 using namespace Tizen::Base::Collection;
39 namespace Tizen { namespace Net
42 //DnsManagedNetConnectionEventListener -listener for network connection events.
44 _DnsManagedNetConnectionEventListener::_DnsManagedNetConnectionEventListener(ArrayList* pDnsRequestHandlerList)
45 :__pDnsRequestHandlerList(pDnsRequestHandlerList)
50 _DnsManagedNetConnectionEventListener::~_DnsManagedNetConnectionEventListener(void)
55 _DnsManagedNetConnectionEventListener::OnManagedNetConnectionBearerChanged(ManagedNetConnection& managedNetConnection)
57 SysLog(NID_NET, "DnsManagedNetConnectionEventListener received an event, OnManagedNetConnectionBearerChanged.");
61 _DnsManagedNetConnectionEventListener::OnManagedNetConnectionStarted(ManagedNetConnection& managedNetConnection)
63 SysLog(NID_NET, "DnsManagedNetConnectionEventListener received an event, OnManagedNetConnectionStarted.");
68 unique_ptr<IEnumerator> pEnumerator(__pDnsRequestHandlerList->GetEnumeratorN());
69 SysTryReturnVoidResult(NID_NET, pEnumerator != null, E_SYSTEM,
70 "[%s] A system error occurred. Failed to get enumerator from DnsRequestHandlerList.", GetErrorMessage(E_SYSTEM));
72 while (pEnumerator->MoveNext() == E_SUCCESS)
74 _DnsRequestHandler* pDnsRequestHandler = null;
75 pDnsRequestHandler = dynamic_cast<_DnsRequestHandler*>(pEnumerator->GetCurrent());
76 SysTryReturnVoidResult(NID_NET, pDnsRequestHandler != null, E_SYSTEM,
77 "[%s] A system error occurred. Failed to cast DnsRequestHandler dynamically.", GetErrorMessage(E_SYSTEM));
79 // start processing request
80 if (!pDnsRequestHandler->IsRequestStarted())
82 r = pDnsRequestHandler->Start();
83 SysTryReturnVoidResult(NID_NET, r == E_SUCCESS, E_SYSTEM,
84 "[%s] A system error occurred. Failed to start DnsRequestHandler.", GetErrorMessage(E_SYSTEM));
90 _DnsManagedNetConnectionEventListener::OnManagedNetConnectionStopped(ManagedNetConnection& managedNetConnection,
91 NetConnectionStoppedReason reason)
93 SysLog(NID_NET, "DnsManagedNetConnectionEventListener received an event, OnManagedNetConnectionStopped.");
96 __isConnected = false;
98 unique_ptr<IEnumerator> pEnumerator(__pDnsRequestHandlerList->GetEnumeratorN());
99 SysTryReturnVoidResult(NID_NET, pEnumerator != null, E_SYSTEM,
100 "[%s] A system error occurred. Failed to get enumerator from DnsRequestHandlerList.", GetErrorMessage(E_SYSTEM));
102 while (pEnumerator->MoveNext() == E_SUCCESS)
104 _DnsRequestHandler* pDnsRequestHandler = null;
105 pDnsRequestHandler = dynamic_cast<_DnsRequestHandler*>(pEnumerator->GetCurrent());
106 SysTryCatch(NID_NET, pDnsRequestHandler != null, r = E_SYSTEM, r,
107 "[%s] A system error occurred. Failed to cast DnsRequestHandler dynamically.", GetErrorMessage(E_SYSTEM));
109 // start processing request
110 if (!pDnsRequestHandler->IsRequestStarted())
112 // call event for operation failed
113 r = pDnsRequestHandler->FireNetworkStoppedEvent();
114 SysTryCatch(NID_NET, r != E_SUCCESS, r = E_SYSTEM, r,
115 "[%s] A system error occurred. Failed to fire NetWorkStoppedEvent.", GetErrorMessage(E_SYSTEM));
122 // Operation is complete, cleanup list
123 __pDnsRequestHandlerList->RemoveAll(true);
127 _DnsManagedNetConnectionEventListener::OnManagedNetConnectionSuspended(ManagedNetConnection& managedNetConnection)
129 SysLog(NID_NET, "DnsManagedNetConnectionEventListener received an event, OnManagedNetConnectionSuspended.");
133 _DnsManagedNetConnectionEventListener::OnManagedNetConnectionResumed(ManagedNetConnection& managedNetConnection)
135 SysLog(NID_NET, "DnsManagedNetConnectionEventListener received an event, OnManagedNetConnectionResumed.");