equal
deleted
inserted
replaced
25 #include <ctsy/serviceapi/mmtsy_ipcdefs.h> |
25 #include <ctsy/serviceapi/mmtsy_ipcdefs.h> |
26 #include <ctsy/pluginapi/cmmdatapackage.h> |
26 #include <ctsy/pluginapi/cmmdatapackage.h> |
27 |
27 |
28 // ======== MEMBER FUNCTIONS ======== |
28 // ======== MEMBER FUNCTIONS ======== |
29 |
29 |
30 CMmPacketQoSTsy::CMmPacketQoSTsy() |
30 CMmPacketQoSTsy::CMmPacketQoSTsy(): |
|
31 iReqHandleType(EMultimodePacketQoSReqHandleUnknown) |
31 { |
32 { |
32 } |
33 } |
33 |
34 |
34 CMmPacketQoSTsy* CMmPacketQoSTsy::NewL( |
35 CMmPacketQoSTsy* CMmPacketQoSTsy::NewL( |
35 CMmPacketServiceTsy* aMmPacketService, |
36 CMmPacketServiceTsy* aMmPacketService, |
119 { |
120 { |
120 TFLOGSTRING2("TSY: CMmPacketQoSTsy::ExtFunc. aIpc: %d", aIpc ); |
121 TFLOGSTRING2("TSY: CMmPacketQoSTsy::ExtFunc. aIpc: %d", aIpc ); |
121 TInt ret( KErrNone ); |
122 TInt ret( KErrNone ); |
122 TInt trapError( KErrNone ); |
123 TInt trapError( KErrNone ); |
123 |
124 |
124 // Reset last tsy request type |
125 // Ensure the ReqHandleType is unset. |
125 iReqHandleType = EMultimodePacketQoSReqHandleUnknown; |
126 // This will detect cases where this method indirectly calls itself |
|
127 // (e.g. servicing a client call that causes a self-reposting notification to complete and thus repost). |
|
128 // Such cases are not supported because iReqHandleType is in the context of this class instance, |
|
129 // not this request, and we don't want the values set by the inner request and the outer request |
|
130 // interfering with each other. |
|
131 __ASSERT_DEBUG(iReqHandleType==EMultimodePacketQoSReqHandleUnknown, User::Invariant()); |
126 |
132 |
127 TRAP( trapError, ret = DoExtFuncL( aTsyReqHandle, aIpc, aPackage ); ); |
133 TRAP( trapError, ret = DoExtFuncL( aTsyReqHandle, aIpc, aPackage ); ); |
128 |
134 |
129 if ( KErrNone != trapError ) |
135 if ( KErrNone != trapError ) |
130 { |
136 { |
141 #ifdef REQHANDLE_TIMER |
147 #ifdef REQHANDLE_TIMER |
142 SetTypeOfResponse( iReqHandleType, aTsyReqHandle ); |
148 SetTypeOfResponse( iReqHandleType, aTsyReqHandle ); |
143 #else |
149 #else |
144 iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, aTsyReqHandle ); |
150 iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, aTsyReqHandle ); |
145 #endif //REQHANDLE_TIMER |
151 #endif //REQHANDLE_TIMER |
|
152 // We've finished with this value now. Clear it so it doesn't leak |
|
153 // up to any other instances of this method down the call stack |
|
154 iReqHandleType = EMultimodePacketQoSReqHandleUnknown; |
146 } |
155 } |
147 |
156 |
148 return KErrNone; |
157 return KErrNone; |
149 |
158 |
150 } |
159 } |