23 #include <liwgenericparam.h> |
23 #include <liwgenericparam.h> |
24 #include <s32mem.h> |
24 #include <s32mem.h> |
25 #include "wrtdata.h" |
25 #include "wrtdata.h" |
26 #include "wrtdataobserver.h" |
26 #include "wrtdataobserver.h" |
27 #include "wrtdatapluginconst.h" |
27 #include "wrtdatapluginconst.h" |
|
28 |
|
29 _LIT8( KErrorCode, "ErrorCode" ); |
|
30 _LIT8( KTransactionId, "TransactionID" ); |
28 |
31 |
29 // --------------------------------------------------------------------------- |
32 // --------------------------------------------------------------------------- |
30 // Factory method construction |
33 // Factory method construction |
31 // --------------------------------------------------------------------------- |
34 // --------------------------------------------------------------------------- |
32 // |
35 // |
165 // |
168 // |
166 void CWrtDataObserver::RegisterL( CLiwDefaultMap* aFilter ) |
169 void CWrtDataObserver::RegisterL( CLiwDefaultMap* aFilter ) |
167 { |
170 { |
168 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
171 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
169 CleanupStack::PushL( inParamList ); |
172 CleanupStack::PushL( inParamList ); |
|
173 |
170 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
174 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
171 CleanupStack::PushL( outParamList ); |
175 CleanupStack::PushL( outParamList ); |
172 |
176 |
173 // Fill in input list for RequestNotification command |
177 // Fill in input list for RequestNotification command |
174 inParamList->AppendL(TLiwGenericParam(KType,TLiwVariant(KCpData_PubData))); |
178 inParamList->AppendL( |
175 inParamList->AppendL(TLiwGenericParam(KFilter ,TLiwVariant(aFilter))); |
179 TLiwGenericParam( KType, TLiwVariant( KCpData_PubData ) ) ); |
|
180 |
|
181 inParamList->AppendL( |
|
182 TLiwGenericParam( KFilter, TLiwVariant( aFilter ) ) ); |
176 |
183 |
177 iError = KErrNone; |
184 iError = KErrNone; |
178 TRAP( iError, iInterface->ExecuteCmdL( |
185 TRAP( iError, iInterface->ExecuteCmdL( |
179 KRequestNotification, |
186 KRequestNotification, |
180 *inParamList, |
187 *inParamList, |
181 *outParamList, |
188 *outParamList, |
182 0, |
189 0, |
183 this ) ); |
190 this ) ); |
184 |
191 |
185 CleanupStack::PopAndDestroy( outParamList ); |
192 TInt pos( 0 ); |
186 CleanupStack::PopAndDestroy( inParamList ); |
193 |
|
194 const TLiwGenericParam* outParam( |
|
195 outParamList->FindFirst( pos, KErrorCode ) ); |
|
196 |
|
197 if ( outParam ) |
|
198 { |
|
199 TInt retval( outParam->Value().AsTInt32() ); |
|
200 |
|
201 if( retval == KErrNone ) |
|
202 { |
|
203 pos = 0; |
|
204 outParam = outParamList->FindFirst( pos, KTransactionId ); |
|
205 |
|
206 if ( outParam ) |
|
207 { |
|
208 iTransactionId = outParam->Value().AsTInt32(); |
|
209 } |
|
210 } |
|
211 } |
|
212 |
|
213 CleanupStack::PopAndDestroy( 2, inParamList ); |
187 } |
214 } |
188 |
215 |
189 // --------------------------------------------------------------------------- |
216 // --------------------------------------------------------------------------- |
190 // CWrtDataObserver ::ReleaseL |
217 // CWrtDataObserver ::ReleaseL |
191 // Sing off to notification |
218 // Sing off to notification |
192 // --------------------------------------------------------------------------- |
219 // --------------------------------------------------------------------------- |
193 // |
220 // |
194 void CWrtDataObserver::ReleaseL() |
221 void CWrtDataObserver::ReleaseL() |
195 { |
222 { |
196 if( iInterface ) |
223 if( !iInterface ) |
197 { |
224 { |
198 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
225 return; |
199 CleanupStack::PushL( inParamList ); |
|
200 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
|
201 CleanupStack::PushL( outParamList ); |
|
202 |
|
203 TInt err(KErrNone); |
|
204 TRAP(err, iInterface->ExecuteCmdL( |
|
205 KRequestNotification, |
|
206 *inParamList, |
|
207 *outParamList, |
|
208 KLiwOptCancel, |
|
209 this )); |
|
210 |
|
211 CleanupStack::PopAndDestroy( outParamList ); |
|
212 CleanupStack::PopAndDestroy( inParamList ); |
|
213 } |
226 } |
|
227 |
|
228 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
|
229 CleanupStack::PushL( inParamList ); |
|
230 |
|
231 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
|
232 CleanupStack::PushL( outParamList ); |
|
233 |
|
234 inParamList->AppendL( TLiwGenericParam( KTransactionId, |
|
235 TLiwVariant( iTransactionId ) ) ); |
|
236 |
|
237 TRAP_IGNORE( iInterface->ExecuteCmdL( |
|
238 KRequestNotification, |
|
239 *inParamList, |
|
240 *outParamList, |
|
241 KLiwOptCancel, |
|
242 this ) ); |
|
243 |
|
244 CleanupStack::PopAndDestroy( 2, inParamList ); |
214 } |
245 } |
215 |
246 |
216 // End of file |
247 // End of file |