equal
deleted
inserted
replaced
1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
17 |
17 |
18 /** |
18 /** |
19 @file |
19 @file |
20 */ |
20 */ |
21 |
21 |
|
22 |
|
23 #include "OstTraceDefinitions.h" |
|
24 #ifdef OST_TRACE_COMPILER_IN_USE |
|
25 #include "smsprecvmodeTraces.h" |
|
26 #endif |
|
27 |
22 #include <commsdattypesv1_1.h> |
28 #include <commsdattypesv1_1.h> |
23 #include <cdbcols.h> |
29 #include <cdbcols.h> |
24 |
30 |
25 #include "smspcdb.h" |
31 #include "smspcdb.h" |
26 #include "smspmain.h" |
32 #include "smspmain.h" |
59 /** |
65 /** |
60 * Two-phase construction of CSmspReceiveMode |
66 * Two-phase construction of CSmspReceiveMode |
61 */ |
67 */ |
62 CSmspReceiveMode* CSmspReceiveMode::NewL(const TSmsSettings& aSmsSettings, RMobileSmsMessaging& aSmsMessaging, const RMobileSmsMessaging::TMobileSmsCapsV1& aSmsCaps, TInt aPriority) |
68 CSmspReceiveMode* CSmspReceiveMode::NewL(const TSmsSettings& aSmsSettings, RMobileSmsMessaging& aSmsMessaging, const RMobileSmsMessaging::TMobileSmsCapsV1& aSmsCaps, TInt aPriority) |
63 { |
69 { |
64 LOGSMSPROT1("CSmspReceiveMode::NewL()"); |
70 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_NEWL_1, "CSmspReceiveMode::NewL()"); |
65 |
71 |
66 CSmspReceiveMode* self = new (ELeave) CSmspReceiveMode(aSmsSettings, aSmsMessaging, aSmsCaps, aPriority); |
72 CSmspReceiveMode* self = new (ELeave) CSmspReceiveMode(aSmsSettings, aSmsMessaging, aSmsCaps, aPriority); |
67 CleanupStack::PushL(self); |
73 CleanupStack::PushL(self); |
68 self->ConstructL(); |
74 self->ConstructL(); |
69 CleanupStack::Pop(self); |
75 CleanupStack::Pop(self); |
71 } // CSmspReceiveMode::NewL |
77 } // CSmspReceiveMode::NewL |
72 |
78 |
73 |
79 |
74 void CSmspReceiveMode::ConstructL() |
80 void CSmspReceiveMode::ConstructL() |
75 { |
81 { |
76 LOGSMSPROT1("CSmspReceiveMode::ConstructL()"); |
82 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_CONSTRUCTL_1, "CSmspReceiveMode::ConstructL()"); |
77 |
83 |
78 CSmspCommDbEvent::ConstructL(); |
84 CSmspCommDbEvent::ConstructL(); |
79 User::LeaveIfError(iCommDbRetryTimer.CreateLocal()); |
85 User::LeaveIfError(iCommDbRetryTimer.CreateLocal()); |
80 User::LeaveIfError(iProperty.Attach(KUidSystemCategory, KUidCommDbSMSReceiveModeChange.iUid)); |
86 User::LeaveIfError(iProperty.Attach(KUidSystemCategory, KUidCommDbSMSReceiveModeChange.iUid)); |
81 } // CSmspReceiveMode::ConstructL |
87 } // CSmspReceiveMode::ConstructL |
84 /** |
90 /** |
85 * Intially sets the SMS Receive Mode on the TSY or waits for notification of the CommDB global setting SMS_RECEIVE_MODE to change |
91 * Intially sets the SMS Receive Mode on the TSY or waits for notification of the CommDB global setting SMS_RECEIVE_MODE to change |
86 */ |
92 */ |
87 void CSmspReceiveMode::Start(TRequestStatus& aStatus) |
93 void CSmspReceiveMode::Start(TRequestStatus& aStatus) |
88 { |
94 { |
89 LOGSMSPROT1("CSmspReceiveMode::Start()"); |
95 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_START_1, "CSmspReceiveMode::Start()"); |
90 |
96 |
91 Cancel(); |
97 Cancel(); |
92 Queue(aStatus); |
98 Queue(aStatus); |
93 |
99 |
94 RMobileSmsMessaging::TMobileSmsReceiveMode recvMode(SelectReceiveMode()); |
100 RMobileSmsMessaging::TMobileSmsReceiveMode recvMode(SelectReceiveMode()); |
119 /** |
125 /** |
120 * Wait for notification from property for when the CommDB global setting SMS_RECEIVE_MODE changes |
126 * Wait for notification from property for when the CommDB global setting SMS_RECEIVE_MODE changes |
121 */ |
127 */ |
122 void CSmspReceiveMode::NotifyOnEvent() |
128 void CSmspReceiveMode::NotifyOnEvent() |
123 { |
129 { |
124 LOGSMSPROT1("CSmspReceiveMode::NotifyOnEvent()"); |
130 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_NOTIFYONEVENT_1, "CSmspReceiveMode::NotifyOnEvent()"); |
125 |
131 |
126 iState = ESmspReceiveModeNotifyOnEvent; |
132 iState = ESmspReceiveModeNotifyOnEvent; |
127 CSmspCommDbEvent::NotifyOnEvent(); |
133 CSmspCommDbEvent::NotifyOnEvent(); |
128 } // CSmspReceiveMode::NotifyOnEvent |
134 } // CSmspReceiveMode::NotifyOnEvent |
129 |
135 |
133 * |
139 * |
134 * @param aReceiveMode SMS Receive Mode to set on the TSY |
140 * @param aReceiveMode SMS Receive Mode to set on the TSY |
135 */ |
141 */ |
136 void CSmspReceiveMode::SetReceiveMode(RMobileSmsMessaging::TMobileSmsReceiveMode aReceiveMode) |
142 void CSmspReceiveMode::SetReceiveMode(RMobileSmsMessaging::TMobileSmsReceiveMode aReceiveMode) |
137 { |
143 { |
138 LOGSMSPROT1("CSmspReceiveMode::SetReceiveMode()"); |
144 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_SETRECEIVEMODE_1, "CSmspReceiveMode::SetReceiveMode()"); |
139 |
145 |
140 aReceiveMode = SelectReceiveMode(aReceiveMode); |
146 aReceiveMode = SelectReceiveMode(aReceiveMode); |
141 iSmsReceiveModeLastSet = aReceiveMode; |
147 iSmsReceiveModeLastSet = aReceiveMode; |
142 |
148 |
143 iState = ESmspReceiveModeSet; |
149 iState = ESmspReceiveModeSet; |
146 } // CSmspReceiveMode::SetReceiveMode |
152 } // CSmspReceiveMode::SetReceiveMode |
147 |
153 |
148 |
154 |
149 void CSmspReceiveMode::DoCancel() |
155 void CSmspReceiveMode::DoCancel() |
150 { |
156 { |
151 LOGSMSPROT1("CSmspReceiveMode::DoCancel()"); |
157 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_DOCANCEL_1, "CSmspReceiveMode::DoCancel()"); |
152 |
158 |
153 TimedSetActiveCancel(); |
159 TimedSetActiveCancel(); |
154 switch (iState) |
160 switch (iState) |
155 { |
161 { |
156 case ESmspReceiveModeInit: |
162 case ESmspReceiveModeInit: |
205 * @param aReceiveMode Will be set to the CommsDat global setting SMS_RECEIVE_MODE |
211 * @param aReceiveMode Will be set to the CommsDat global setting SMS_RECEIVE_MODE |
206 * @return Error code if we cannot create the session, or load from the db |
212 * @return Error code if we cannot create the session, or load from the db |
207 */ |
213 */ |
208 void CSmspReceiveMode::GetCommDbReceiveModeL(RMobileSmsMessaging::TMobileSmsReceiveMode& aReceiveMode) |
214 void CSmspReceiveMode::GetCommDbReceiveModeL(RMobileSmsMessaging::TMobileSmsReceiveMode& aReceiveMode) |
209 { |
215 { |
210 LOGSMSPROT1("CSmspReceiveMode::GetCommDbReceiveModeL()"); |
216 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_GETCOMMDBRECEIVEMODEL_1, "CSmspReceiveMode::GetCommDbReceiveModeL()"); |
211 |
217 |
212 #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY |
218 #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY |
213 CMDBSession* sess = CMDBSession::NewL(KCDVersion1_2); |
219 CMDBSession* sess = CMDBSession::NewL(KCDVersion1_2); |
214 #else |
220 #else |
215 CMDBSession* sess = CMDBSession::NewL(KCDVersion1_1); |
221 CMDBSession* sess = CMDBSession::NewL(KCDVersion1_1); |
228 } // CSmspReceiveMode::GetCommDbReceiveModeL |
234 } // CSmspReceiveMode::GetCommDbReceiveModeL |
229 |
235 |
230 |
236 |
231 void CSmspReceiveMode::DoRunL() |
237 void CSmspReceiveMode::DoRunL() |
232 { |
238 { |
233 LOGSMSPROT1("CSmspReceiveMode::DoRunL()"); |
239 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_DORUNL_1, "CSmspReceiveMode::DoRunL()"); |
234 |
240 |
235 switch (iState) |
241 switch (iState) |
236 { |
242 { |
237 case ESmspReceiveModeSet: |
243 case ESmspReceiveModeSet: |
238 { |
244 { |
261 SetActive(); |
267 SetActive(); |
262 } |
268 } |
263 else |
269 else |
264 { |
270 { |
265 // Failed to read CommDB even after retries. Set the receive mode to the last known setting |
271 // Failed to read CommDB even after retries. Set the receive mode to the last known setting |
266 LOGSMSPROT2("CSmspReceiveMode::DoRunL in ESmspReceiveModeRetryCommDb state, failed to read CommDb, using mode #%d", iSmsReceiveModeLastSet ); |
272 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_DORUNL_2, "CSmspReceiveMode::DoRunL in ESmspReceiveModeRetryCommDb state, failed to read CommDb, using mode #%d", iSmsReceiveModeLastSet ); |
267 SetReceiveMode(iSmsReceiveModeLastSet); |
273 SetReceiveMode(iSmsReceiveModeLastSet); |
268 } |
274 } |
269 } |
275 } |
270 } |
276 } |
271 break; |
277 break; |
306 * |
312 * |
307 * @return An SMS Receive Mode supported by the TSY. |
313 * @return An SMS Receive Mode supported by the TSY. |
308 */ |
314 */ |
309 RMobileSmsMessaging::TMobileSmsReceiveMode CSmspReceiveMode::SelectReceiveMode() const |
315 RMobileSmsMessaging::TMobileSmsReceiveMode CSmspReceiveMode::SelectReceiveMode() const |
310 { |
316 { |
311 LOGSMSPROT1("CSmspReceiveMode::SelectReceiveMode()"); |
317 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_SELECTRECEIVEMODE_1, "CSmspReceiveMode::SelectReceiveMode()"); |
312 |
318 |
313 const TUint32 smsControl = iSmsCaps.iSmsControl; |
319 const TUint32 smsControl = iSmsCaps.iSmsControl; |
314 RMobileSmsMessaging::TMobileSmsReceiveMode recvMode = RMobileSmsMessaging::EReceiveModeUnspecified; |
320 RMobileSmsMessaging::TMobileSmsReceiveMode recvMode = RMobileSmsMessaging::EReceiveModeUnspecified; |
315 |
321 |
316 if (smsControl & RMobileSmsMessaging::KCapsReceiveUnstoredClientAck) |
322 if (smsControl & RMobileSmsMessaging::KCapsReceiveUnstoredClientAck) |
340 * @param aPreferredMode SMS Receive Mode that a client would like to use. |
346 * @param aPreferredMode SMS Receive Mode that a client would like to use. |
341 * @return aPreferredMode if it is supported by the TSY, otherwise return a receive mode that is supported by the TSY. |
347 * @return aPreferredMode if it is supported by the TSY, otherwise return a receive mode that is supported by the TSY. |
342 */ |
348 */ |
343 RMobileSmsMessaging::TMobileSmsReceiveMode CSmspReceiveMode::SelectReceiveMode(RMobileSmsMessaging::TMobileSmsReceiveMode aPreferredMode) const |
349 RMobileSmsMessaging::TMobileSmsReceiveMode CSmspReceiveMode::SelectReceiveMode(RMobileSmsMessaging::TMobileSmsReceiveMode aPreferredMode) const |
344 { |
350 { |
345 LOGSMSPROT1("CSmspReceiveMode::SelectReceiveMode()"); |
351 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPRECEIVEMODE_SELECTRECEIVEMODE1_1, "CSmspReceiveMode::SelectReceiveMode()"); |
346 |
352 |
347 const TUint32 smsControl = iSmsCaps.iSmsControl; |
353 const TUint32 smsControl = iSmsCaps.iSmsControl; |
348 TBool usePreferred = EFalse; |
354 TBool usePreferred = EFalse; |
349 |
355 |
350 switch (aPreferredMode) |
356 switch (aPreferredMode) |