merge with master
[platform/framework/native/telephony.git] / src / FTel_SimInfoImpl.h
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  * @file        FTel_SimInfoImpl.h
19  * @brief       This is the header file for the %_SimInfoImpl class.
20  *
21  * This header file contains the declarations of the %_SimInfoImpl class.
22  */
23 #ifndef _FTEL_INTERNAL_SIM_INFO_IMPL_H_
24 #define _FTEL_INTERNAL_SIM_INFO_IMPL_H_
25
26 #include <ITapiSim.h>
27 #include <FBaseObject.h>
28
29
30 namespace Tizen { namespace Base
31 {
32 class String;
33 } } // Tizen::Base
34
35 namespace Tizen { namespace Telephony
36 {
37 class SimInfo;
38 class _TelephonyIpcProxy;
39
40 class _SimInfoImpl
41         : public Tizen::Base::Object
42 {
43 public:
44         /**
45      * This is the default constructor for this class.
46      *
47      * @since 2.1
48      */
49         _SimInfoImpl(void);
50
51         /**
52          * This is the copy constructor for the %_SimInfoImpl class.
53          *
54          * @since 2.1
55          * @param[in]   rhs             An instance of the %_SimInfoImpl class
56          */
57         _SimInfoImpl(const _SimInfoImpl& rhs);
58
59         /**
60      * This is the destructor for this class.
61      *
62      * @since 2.1
63      */
64         virtual ~_SimInfoImpl(void);
65
66         /**
67      * @see SimInfo::Construct()
68      */
69         result Construct(void);
70
71         /**
72      * @see SimInfo::GetMnc()
73      */
74         int GetMnc(void) const;
75
76         /**
77      * @see SimInfo::GetMcc()
78      */
79         int GetMcc(void) const;
80
81         /**
82      * @see SimInfo::GetSpn()
83      */
84         Tizen::Base::String GetSpn(void) const;
85
86         /**
87      * @see SimInfo::GetIccId()
88      */
89         Tizen::Base::String GetIccId(void) const;
90
91         /**
92      * @see SimInfo::GetOperatorName()
93      */
94         Tizen::Base::String GetOperatorName(void) const;
95
96         /**
97      * @see SimInfo::GetPhoneNumber()
98      */
99         Tizen::Base::String GetPhoneNumber(void) const;
100
101         /**
102      * @see SimInfo::GetImsi()
103      */
104         Tizen::Base::String GetImsi(void) const;
105
106         /**
107          * @see SimInfo::GetSimType()
108          */
109         SimType GetSimType(void) const;
110
111         /**
112          * @see SimInfo::IsAvailable()
113          */
114         bool IsAvailable(void) const;
115
116         /**
117      * Gets the Impl instance.
118      *
119      * @since 2.1
120      * @return The pointer to _SimInfoImpl
121      * @param[in] simInfo    An instance of SimInfo
122      */
123         static _SimInfoImpl* GetInstance(SimInfo& simInfo);
124
125         /**
126      * Gets the Impl instance.
127      *
128      * @since 2.1
129      * @return The pointer to _SimInfoImpl
130      * @param[in] simInfo    An instance of SimInfo
131      */
132         static const _SimInfoImpl* GetInstance(const SimInfo& simInfo);
133
134         /**
135      * This is the assignment operator for this class. Do @b not use directly.
136      *
137      * @param[in]   rhs An instance of %_SimInfoImpl
138      */
139         _SimInfoImpl& operator =(const _SimInfoImpl& rhs);
140
141         /**
142          * @see         SimInfo::Equals()
143          */
144         virtual bool Equals(const Tizen::Base::Object& rhs) const;
145
146         /**
147          * @see         SimInfo::GetHashCode()1
148          */
149         virtual int GetHashCode(void) const;
150
151 private:
152         int __mcc;
153         int __mnc;
154         Tizen::Base::String __iccId;
155         Tizen::Base::String __imsi;
156         Tizen::Base::String __operatorName;
157         Tizen::Base::String __phoneNumber;
158         Tizen::Base::String __spn;
159         SimType __simType;
160         bool __isAvailable;
161         bool __isIccIdValid;
162         bool __isMccValid;
163         bool __isMncValid;
164         bool __isOperatorNameValid;
165         bool __isPhoneNumberValid;
166         bool __isSpnValid;
167         bool __isSimTypeValid;
168
169         friend class _SimStateManagerImpl;
170
171 }; // _SimInfoImpl
172
173 }} // Tizen::Telephony
174 #endif // _FTEL_INTERNAL_SIM_INFO_IMPL_H_