21 #include <liwgenericparam.h> |
21 #include <liwgenericparam.h> |
22 #include <s32mem.h> |
22 #include <s32mem.h> |
23 #include "sapidata.h" |
23 #include "sapidata.h" |
24 #include "sapidataobserver.h" |
24 #include "sapidataobserver.h" |
25 #include "sapidatapluginconst.h" |
25 #include "sapidatapluginconst.h" |
|
26 |
|
27 // Constants |
|
28 _LIT8( KErrorCode, "ErrorCode" ); |
|
29 _LIT8( KTransactionId, "TransactionID" ); |
|
30 |
26 // --------------------------------------------------------------------------- |
31 // --------------------------------------------------------------------------- |
27 // Constructor |
32 // Constructor |
28 // --------------------------------------------------------------------------- |
33 // --------------------------------------------------------------------------- |
29 // |
34 // |
30 CSapiDataObserver::CSapiDataObserver () |
35 CSapiDataObserver::CSapiDataObserver () |
45 |
50 |
46 // --------------------------------------------------------------------------- |
51 // --------------------------------------------------------------------------- |
47 // Register for notifications |
52 // Register for notifications |
48 // --------------------------------------------------------------------------- |
53 // --------------------------------------------------------------------------- |
49 // |
54 // |
50 void CSapiDataObserver::RegisterL( CLiwDefaultMap* aFilter, const TDesC& aRegistry ) |
55 void CSapiDataObserver::RegisterL( CLiwDefaultMap* aFilter, |
|
56 const TDesC& aRegistry, |
|
57 TUint aOptions ) |
51 { |
58 { |
52 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
59 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
53 CleanupStack::PushL( inParamList ); |
60 CleanupStack::PushL( inParamList ); |
|
61 |
54 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
62 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
55 CleanupStack::PushL( outParamList ); |
63 CleanupStack::PushL( outParamList ); |
56 |
64 |
57 // Fill in input list for RequestNotification command |
65 // Fill in input list for RequestNotification command |
58 inParamList->AppendL(TLiwGenericParam(KType,TLiwVariant(aRegistry))); |
66 inParamList->AppendL( |
59 inParamList->AppendL(TLiwGenericParam(KFilter ,TLiwVariant(aFilter))); |
67 TLiwGenericParam( KType, TLiwVariant( aRegistry ) ) ); |
60 |
68 |
61 TRAP_IGNORE( iInterface->ExecuteCmdL(KRequestNotification, |
69 inParamList->AppendL( |
|
70 TLiwGenericParam( KFilter ,TLiwVariant( aFilter ) ) ); |
|
71 |
|
72 TRAP_IGNORE( iInterface->ExecuteCmdL( |
|
73 KRequestNotification, |
62 *inParamList, |
74 *inParamList, |
63 *outParamList, |
75 *outParamList, |
64 0, |
76 aOptions, |
65 this ) ); |
77 this ) ); |
66 |
78 |
67 CleanupStack::PopAndDestroy( outParamList ); |
79 TInt pos( 0 ); |
68 CleanupStack::PopAndDestroy( inParamList ); |
80 |
|
81 const TLiwGenericParam* outParam( |
|
82 outParamList->FindFirst( pos, KErrorCode ) ); |
|
83 |
|
84 if ( outParam ) |
|
85 { |
|
86 TInt retval( outParam->Value().AsTInt32() ); |
|
87 |
|
88 if( retval == KErrNone ) |
|
89 { |
|
90 pos = 0; |
|
91 outParam = outParamList->FindFirst( pos, KTransactionId ); |
|
92 |
|
93 if ( outParam ) |
|
94 { |
|
95 iTransactionId = outParam->Value().AsTInt32(); |
|
96 } |
|
97 } |
|
98 } |
|
99 |
|
100 CleanupStack::PopAndDestroy( 2, inParamList ); |
69 } |
101 } |
70 |
102 |
71 // --------------------------------------------------------------------------- |
103 // --------------------------------------------------------------------------- |
72 // Sing off to notification |
104 // Sing off to notification |
73 // --------------------------------------------------------------------------- |
105 // --------------------------------------------------------------------------- |
74 // |
106 // |
75 void CSapiDataObserver::ReleaseL() |
107 void CSapiDataObserver::ReleaseL() |
76 { |
108 { |
77 if( iInterface ) |
109 if( !iInterface ) |
78 { |
110 { |
79 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
111 return; |
80 CleanupStack::PushL( inParamList ); |
|
81 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
|
82 CleanupStack::PushL( outParamList ); |
|
83 |
|
84 TRAP_IGNORE( iInterface->ExecuteCmdL( KRequestNotification, |
|
85 *inParamList, |
|
86 *outParamList, |
|
87 KLiwOptCancel, |
|
88 this )); |
|
89 |
|
90 CleanupStack::PopAndDestroy( outParamList ); |
|
91 CleanupStack::PopAndDestroy( inParamList ); |
|
92 } |
112 } |
|
113 |
|
114 CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL(); |
|
115 CleanupStack::PushL( inParamList ); |
|
116 |
|
117 CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL(); |
|
118 CleanupStack::PushL( outParamList ); |
|
119 |
|
120 inParamList->AppendL( TLiwGenericParam( KTransactionId, |
|
121 TLiwVariant( iTransactionId ) ) ); |
|
122 |
|
123 TRAP_IGNORE( iInterface->ExecuteCmdL( |
|
124 KRequestNotification, |
|
125 *inParamList, |
|
126 *outParamList, |
|
127 KLiwOptCancel, |
|
128 this )); |
|
129 |
|
130 |
|
131 CleanupStack::PopAndDestroy( 2, inParamList ); |
93 } |
132 } |
94 |
133 |
95 // --------------------------------------------------------------------------- |
134 // --------------------------------------------------------------------------- |
96 // Factory method construction |
135 // Factory method construction |
97 // --------------------------------------------------------------------------- |
136 // --------------------------------------------------------------------------- |