19 #include <e32base.h> // CObject |
19 #include <e32base.h> // CObject |
20 |
20 |
21 #include "cmmmtpdpaccesssingleton.h" |
21 #include "cmmmtpdpaccesssingleton.h" |
22 #include "cmmmtpdpmetadataaccesswrapper.h" |
22 #include "cmmmtpdpmetadataaccesswrapper.h" |
23 #include "mmmtpdplogger.h" |
23 #include "mmmtpdplogger.h" |
|
24 #include "mmmtpdputility.h" |
24 |
25 |
25 // ----------------------------------------------------------------------------- |
26 // ----------------------------------------------------------------------------- |
26 // CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton |
27 // CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton |
27 // destructor |
28 // destructor |
28 // ----------------------------------------------------------------------------- |
29 // ----------------------------------------------------------------------------- |
29 // |
30 // |
30 CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton() |
31 CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton() |
31 { |
32 { |
32 delete iWrapper; |
33 delete iWrapper; |
|
34 |
|
35 if (iDelayStatusChanger) |
|
36 { |
|
37 iDelayStatusChanger->Cancel(); |
|
38 delete iDelayStatusChanger; |
|
39 } |
33 } |
40 } |
34 |
41 |
35 // ----------------------------------------------------------------------------- |
42 // ----------------------------------------------------------------------------- |
36 // CMmMtpDpAccessSingleton::GetAccessWrapperL |
43 // CMmMtpDpAccessSingleton::GetAccessWrapperL |
37 // get wrapper instance |
44 // get wrapper instance |
149 // ----------------------------------------------------------------------------- |
156 // ----------------------------------------------------------------------------- |
150 // |
157 // |
151 void CMmMtpDpAccessSingleton::ConstructL( MMTPDataProviderFramework& aFramework ) |
158 void CMmMtpDpAccessSingleton::ConstructL( MMTPDataProviderFramework& aFramework ) |
152 { |
159 { |
153 iWrapper = CMmMtpDpMetadataAccessWrapper::NewL( aFramework ); |
160 iWrapper = CMmMtpDpMetadataAccessWrapper::NewL( aFramework ); |
154 } |
161 iDelayStatusChanger = CIdle::NewL(CActive::EPriorityIdle); |
155 |
162 } |
|
163 |
|
164 // ----------------------------------------------------------------------------- |
|
165 // CMmMtpDpAccessSingleton::ActiveToIdleStatusChange |
|
166 // Issue ActiveToIdle Status Change (ActiveObject) |
|
167 // ----------------------------------------------------------------------------- |
|
168 // |
|
169 EXPORT_C void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange() |
|
170 { |
|
171 PRINT( _L( "CMmMtpDpAccessSingleton::ActiveToIdleStatusChange" ) ); |
|
172 CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance(); |
|
173 |
|
174 if (self != NULL) |
|
175 { |
|
176 CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(); |
|
177 |
|
178 if (self->DelayStatusChanger() != NULL) |
|
179 self->DelayStatusChanger()->Start(TCallBack(DoActiveToIdleStatusChange, self)); |
|
180 } |
|
181 } |
|
182 |
|
183 // ----------------------------------------------------------------------------- |
|
184 // CMmMtpDpAccessSingleton::CancelActiveToIdleChange |
|
185 // Cancel Outstanding ActiveToIdle Status Change |
|
186 // ----------------------------------------------------------------------------- |
|
187 // |
|
188 EXPORT_C void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange() |
|
189 { |
|
190 CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance(); |
|
191 |
|
192 if ((self != NULL) && (self->DelayStatusChanger() != NULL)) |
|
193 { |
|
194 if (self->DelayStatusChanger()->IsActive()) |
|
195 { |
|
196 PRINT( _L( "CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange, cancel outstanding request" ) ); |
|
197 self->DelayStatusChanger()->Cancel(); |
|
198 } |
|
199 } |
|
200 } |
|
201 |
|
202 // ----------------------------------------------------------------------------- |
|
203 // CMmMtpDpAccessSingleton::DelayStatusChanger |
|
204 // get DelayStatusChanger instance, internal use only |
|
205 // ----------------------------------------------------------------------------- |
|
206 // |
|
207 CIdle* CMmMtpDpAccessSingleton::DelayStatusChanger() |
|
208 { |
|
209 CIdle* delayStatusChanger = NULL; |
|
210 CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance(); |
|
211 |
|
212 if (self != NULL) |
|
213 delayStatusChanger = self->iDelayStatusChanger; |
|
214 |
|
215 return delayStatusChanger; |
|
216 } |
|
217 |
|
218 // ----------------------------------------------------------------------------- |
|
219 // CMmMtpDpAccessSingleton::DoActiveToIdleChange |
|
220 // Perform actural ActiveToIdle Status Change after active object callback |
|
221 // ----------------------------------------------------------------------------- |
|
222 // |
|
223 TInt CMmMtpDpAccessSingleton::DoActiveToIdleStatusChange(TAny* /*Any*/) |
|
224 { |
|
225 PRINT( _L( "CMmMtpDpAccessSingleton::DoActiveToIdleStatusChange ") ); |
|
226 MmMtpDpUtility::DoSetPSStatus(EMtpPSStatusReadyToSync); |
|
227 return KErrNone; |
|
228 } |
156 |
229 |
157 // end of file |
230 // end of file |