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.
19 * @file FTel_TelephonyIpcProxy.h
20 * @brief This is the header file for the %_TelephonyIpcProxy class.
22 * This header file contains the declarations of the %_TelephonyIpcProxy class.
25 #ifndef _FTEL_INTERNAL_TELEPHONY_IPC_PROXY_H_
26 #define _FTEL_INTERNAL_TELEPHONY_IPC_PROXY_H_
28 #include <unique_ptr.h>
29 #include <tapi_type.h>
30 #include <FBaseObject.h>
31 #include <FIo_IpcCommonDataTypes.h>
32 #include <FIo_IIpcClientEventListener.h>
34 namespace Tizen { namespace Base
48 namespace Tizen { namespace Io {
52 namespace Tizen { namespace Telephony
55 class _NetworkManagerImpl;
56 class _CallManagerImpl;
57 class _NetworkManagerEvent;
60 * @class _TelephonyIpcProxy
61 * @brief This class represents an IPC proxy for %Telephony service.
63 * This class represents an IPC proxy for %Telephony service to communicate with OSP Connectivity daemon.
65 class _TelephonyIpcProxy
66 : public Tizen::Base::Object
67 , public Tizen::Io::_IIpcClientEventListener
71 // from _IIpcClientEventListener
72 virtual void OnIpcResponseReceived(Tizen::Io::_IpcClient& client, const IPC::Message& message);
74 result Construct(void);
75 result GetImsi(Tizen::Base::String& imsi) const;
76 result HasSystemPrivilege(void);
77 result GetNetworkSelectionMode(_NetworkManagerImpl* pNetworkManagerImpl);
78 result SelectNetwork(_NetworkManagerImpl* pNetworkManagerImpl, const Tizen::Base::String& plmn, const int netwokrType);
79 result SelectNetwork(_NetworkManagerImpl* pNetworkManagerImpl);
80 result SearchNetwork(_NetworkManagerImpl* pNetworkManagerImpl);
82 result HasCallForwardPrivilege(void);
83 result RequestCallForward(_CallManagerImpl* pCallManagerImpl, const Tizen::Base::String& phoneNumber);
84 result StopCallForward(_CallManagerImpl* pCallManagerImpl);
85 result GetCallForwardNumber(_CallManagerImpl* pCallManagerImpl);
87 result AddNetworkEvent(_NetworkManagerEvent* pEvent);
88 void RemoveNetworkEvent(_NetworkManagerEvent* pEvent);
90 static _TelephonyIpcProxy* GetInstance(void);
93 _TelephonyIpcProxy(void);
94 virtual ~_TelephonyIpcProxy(void);
97 _TelephonyIpcProxy(const _TelephonyIpcProxy& value);
98 _TelephonyIpcProxy& operator =(const _TelephonyIpcProxy& rhs);
100 void OnNetworkSelectionModeReceived(bool isManual, unsigned long res);
101 void OnNetworkSelectionCompleted(unsigned long res);
102 void OnNetworkSearchCompleted(Tizen::Base::String message, unsigned long res);
104 void OnTelephonyCallForwardNumberReceived(Tizen::Base::String phoneNumber, unsigned long res);
105 void OnTelephonyCallForwardResponseReceived(Tizen::Base::String phoneNumber, unsigned long res);
106 void OnTelephonyCallForwardStopped(Tizen::Base::String phoneNumber, unsigned long res);
108 void OnNetworkStatusChanged(bool isCallServiceAvailable, bool isDataServiceAvailable, bool isRoaming);
110 static void InitSingleton(void);
113 std::unique_ptr<Tizen::Io::_IpcClient> __pIpcClient;
114 std::unique_ptr<Tizen::Base::Runtime::Mutex> __pLock;
115 std::unique_ptr<Tizen::Base::Collection::ArrayList> __pNetworkEventList;
116 int __networkEventCount;
117 _NetworkManagerImpl* __pNetworkManagerImplForGet;
118 _NetworkManagerImpl* __pNetworkManagerImplForSelect;
119 _NetworkManagerImpl* __pNetworkManagerImplForSearch;
120 _CallManagerImpl* __pCallManagerImplForGet;
121 _CallManagerImpl* __pCallManagerImplForStart;
122 _CallManagerImpl* __pCallManagerImplForStop;
123 static _TelephonyIpcProxy* __pInstance;
125 friend class std::default_delete<_TelephonyIpcProxy>;
127 }; // _TelephonyIpcProxy
130 #endif // _FTEL_INTERNAL_TELEPHONY_IPC_PROXY_H_