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