merge with master
[platform/framework/native/telephony.git] / src / FTel_SimManagerEvent.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
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.
16 //
17
18 /**
19  * @file    FTel_SimManagerEvent.cpp
20  * @brief   This is the implementation file for the _SimManagerEvent Class.
21  *
22  * This header file contains implementation of the _SimManagerEvent Class.
23  */
24
25 #include <unique_ptr.h>
26 #include <FBaseRtIEventListener.h>
27 #include <FBaseColArrayList.h>
28 #include <FBaseSysLog.h>
29 #include <FBaseColAllElementsDeleter.h>
30
31 #include <FTelISimStateManagerGetPinLockSettingResultListener.h>
32 #include "FTel_SimManagerEvent.h"
33 #include "FTel_SimManagerEventArg.h"
34
35 using namespace std;
36 using namespace Tizen::Base::Collection;
37 using namespace Tizen::Base::Runtime;
38
39 namespace Tizen { namespace Telephony
40 {
41
42 _SimManagerEvent::_SimManagerEvent(void)
43 {
44 }
45
46 _SimManagerEvent::~_SimManagerEvent(void)
47 {
48 }
49
50 result
51 _SimManagerEvent::Construct(void)
52 {
53     return _Event::Initialize();
54 }
55
56
57 void
58 _SimManagerEvent::FireImpl(IEventListener& listener, const IEventArg& arg)
59 {
60         const _SimManagerEventArg* pArg = dynamic_cast<const _SimManagerEventArg*>(&arg);
61         SysTryReturnVoidResult(NID_TEL, pArg != null, E_INVALID_ARG,
62                         "[%s] Invalid argument used. The arg is a null pointer.", GetErrorMessage(E_INVALID_ARG));
63
64         ISimStateManagerGetPinLockSettingResultListener* pSimStateManagerGetPinLockSettingResultListener = dynamic_cast<ISimStateManagerGetPinLockSettingResultListener*>(&listener);
65         SysTryReturnVoidResult(NID_TEL, pSimStateManagerGetPinLockSettingResultListener != null, E_INVALID_ARG,
66                         "[%s] Invalid argument used. The result of a dynamic_cast operation is null for SIM manager listener", GetErrorMessage(E_INVALID_ARG));
67
68         _SimManagerEventType eventType = pArg->GetEventType();
69
70         switch(eventType)
71         {
72         case _SIM_MANAGER_EVENT_PIN_LOCK_SETTING_RESULT_RECEIVED:
73                 SysLog(NID_TEL, "Calling OnSimStateManagerGetPinLockSettingResultReceived().");
74                 pSimStateManagerGetPinLockSettingResultListener->OnSimStateManagerGetPinLockSettingResultReceived(pArg->IsPinLockEnabled(), pArg->GetResult());
75                 SysLog(NID_TEL, "Called OnSimStateManagerGetPinLockSettingResultReceived().");
76                 break;
77         default:
78                 break;
79         }
80 }
81
82 } } // Tizen::Telephony