equal
deleted
inserted
replaced
28 #include <ctsy/tflogger.h> |
28 #include <ctsy/tflogger.h> |
29 #include "cmmnettsy.h" |
29 #include "cmmnettsy.h" |
30 |
30 |
31 // ======== MEMBER FUNCTIONS ======== |
31 // ======== MEMBER FUNCTIONS ======== |
32 |
32 |
33 CMmBroadcastTsy::CMmBroadcastTsy() |
33 CMmBroadcastTsy::CMmBroadcastTsy(): |
|
34 iReqHandleType(EMultimodeBroadcastReqHandleUnknown) |
34 { |
35 { |
35 // Set number of WCDMA CBS Pages to 0 |
36 // Set number of WCDMA CBS Pages to 0 |
36 iWcdmaPageNumber = 0; |
37 iWcdmaPageNumber = 0; |
37 |
38 |
38 // Defaut value for iWcdmaCbsPageLeft.it means that there are |
39 // Defaut value for iWcdmaCbsPageLeft.it means that there are |
151 reinterpret_cast< RMobilePhone::TClientId* > ( dataPtr ), |
152 reinterpret_cast< RMobilePhone::TClientId* > ( dataPtr ), |
152 aPackage.Des2n() ); |
153 aPackage.Des2n() ); |
153 break; |
154 break; |
154 // Cell broadcast requests that may need trapping |
155 // Cell broadcast requests that may need trapping |
155 default: |
156 default: |
156 // reset last tsy request type |
157 // Ensure the ReqHandleType is unset. |
157 iReqHandleType = EMultimodeBroadcastReqHandleUnknown; |
158 // This will detect cases where this method indirectly calls itself |
|
159 // (e.g. servicing a client call that causes a self-reposting notification to complete and thus repost). |
|
160 // Such cases are not supported because iReqHandleType is in the context of this class instance, |
|
161 // not this request, and we don't want the values set by the inner request and the outer request |
|
162 // interfering with each other. |
|
163 __ASSERT_DEBUG(iReqHandleType==EMultimodeBroadcastReqHandleUnknown, User::Invariant()); |
158 |
164 |
159 TInt leaveCode( KErrNone ); |
165 TInt leaveCode( KErrNone ); |
160 TRAP( leaveCode, ret = DoExtFuncL( aTsyReqHandle, aIpc, |
166 TRAP( leaveCode, ret = DoExtFuncL( aTsyReqHandle, aIpc, |
161 aPackage ); ); |
167 aPackage ); ); |
162 |
168 |
173 #else |
179 #else |
174 //Never comes here ? See SetTypeOfResponse. |
180 //Never comes here ? See SetTypeOfResponse. |
175 iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, |
181 iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, |
176 aTsyReqHandle ); |
182 aTsyReqHandle ); |
177 #endif // REQHANDLE_TIMER |
183 #endif // REQHANDLE_TIMER |
|
184 // We've finished with this value now. Clear it so it doesn't leak |
|
185 // up to any other instances of this method down the call stack |
|
186 iReqHandleType = EMultimodeBroadcastReqHandleUnknown; |
178 } |
187 } |
179 break; |
188 break; |
180 } |
189 } |
181 |
190 |
182 return ret; |
191 return ret; |
1020 iCbFilterSetting = *aSetting; |
1029 iCbFilterSetting = *aSetting; |
1021 |
1030 |
1022 // CB routing is not activated. We can complete this now. |
1031 // CB routing is not activated. We can complete this now. |
1023 CompleteNotifyFilterSettingChange(); |
1032 CompleteNotifyFilterSettingChange(); |
1024 |
1033 |
1025 // Using CompleteNotifyFilterSettingChange() causes iReqHandleType to be modified so that |
|
1026 // the object thinks it has been asked to perform a notification request, rather than a set request. |
|
1027 iReqHandleType = EMultimodeBroadcastReqHandleUnknown; |
|
1028 |
|
1029 ReqCompleted( aTsyReqHandle, KErrNone ); |
1034 ReqCompleted( aTsyReqHandle, KErrNone ); |
1030 } |
1035 } |
1031 } |
1036 } |
1032 else |
1037 else |
1033 { |
1038 { |