equal
deleted
inserted
replaced
37 #include "emailmailboxcache.h" |
37 #include "emailmailboxcache.h" |
38 #include "FreestyleEmailUiConstants.h" |
38 #include "FreestyleEmailUiConstants.h" |
39 #include "emailclientapi.hrh" |
39 #include "emailclientapi.hrh" |
40 #include "freestyleemailcenrepkeys.h" |
40 #include "freestyleemailcenrepkeys.h" |
41 #include "FreestyleEmailUiConstants.h" |
41 #include "FreestyleEmailUiConstants.h" |
|
42 |
42 // --------------------------------------------------------------------------- |
43 // --------------------------------------------------------------------------- |
43 // CEmailClientApi::MailboxL |
44 // CEmailClientApi::MailboxL |
44 // --------------------------------------------------------------------------- |
45 // --------------------------------------------------------------------------- |
45 // |
46 // |
46 MEmailMailbox* CEmailClientApi::MailboxL( const TMailboxId& aId ) |
47 MEmailMailbox* CEmailClientApi::MailboxL( const TMailboxId& aId ) |
199 // ----------------------------------------------------------------------------- |
200 // ----------------------------------------------------------------------------- |
200 // |
201 // |
201 // ----------------------------------------------------------------------------- |
202 // ----------------------------------------------------------------------------- |
202 CEmailClientApi* CEmailClientApi::NewL() |
203 CEmailClientApi* CEmailClientApi::NewL() |
203 { |
204 { |
204 CEmailClientApi* self = new ( ELeave ) CEmailClientApi(); |
205 CEmailClientApi* instance = static_cast<CEmailClientApi*>( Dll::Tls() ); |
205 CleanupStack::PushL( self ); |
206 |
206 self->ConstructL(); |
207 if ( instance == NULL ) |
207 CleanupStack::Pop(); |
208 { |
208 return self; |
209 instance = new ( ELeave ) CEmailClientApi(); |
|
210 CleanupStack::PushL( instance ); |
|
211 instance->ConstructL(); |
|
212 User::LeaveIfError( Dll::SetTls( instance ) ); |
|
213 CleanupStack::Pop(); |
|
214 } |
|
215 |
|
216 instance->iInstanceCounter++; |
|
217 |
|
218 return instance; |
209 } |
219 } |
210 |
220 |
211 // ----------------------------------------------------------------------------- |
221 // ----------------------------------------------------------------------------- |
212 // |
222 // |
213 // ----------------------------------------------------------------------------- |
223 // ----------------------------------------------------------------------------- |
224 } |
234 } |
225 iPluginDataArray.Close(); |
235 iPluginDataArray.Close(); |
226 iLoadedPluginsArray.Close(); |
236 iLoadedPluginsArray.Close(); |
227 delete iMailboxCache; |
237 delete iMailboxCache; |
228 delete iClientAPI; |
238 delete iClientAPI; |
229 } |
239 Dll::FreeTls(); |
230 |
240 } |
231 // ----------------------------------------------------------------------------- |
241 |
232 // |
242 // ----------------------------------------------------------------------------- |
233 // ----------------------------------------------------------------------------- |
243 // |
234 CEmailClientApi::CEmailClientApi() |
244 // ----------------------------------------------------------------------------- |
|
245 CEmailClientApi::CEmailClientApi() : iInstanceCounter( 0 ) |
235 { |
246 { |
236 } |
247 } |
237 |
248 |
238 // ----------------------------------------------------------------------------- |
249 // ----------------------------------------------------------------------------- |
239 // |
250 // |
295 // ----------------------------------------------------------------------------- |
306 // ----------------------------------------------------------------------------- |
296 // |
307 // |
297 // ----------------------------------------------------------------------------- |
308 // ----------------------------------------------------------------------------- |
298 void CEmailClientApi::Release() |
309 void CEmailClientApi::Release() |
299 { |
310 { |
300 delete this; |
311 if( this->iInstanceCounter == 1 ) |
|
312 { |
|
313 delete this; |
|
314 } |
|
315 else |
|
316 { |
|
317 this->iInstanceCounter--; |
|
318 } |
301 } |
319 } |
302 |
320 |
303 // ----------------------------------------------------------------------------- |
321 // ----------------------------------------------------------------------------- |
304 // Returns plugin instance from plugin data. If we already have "claimed" |
322 // Returns plugin instance from plugin data. If we already have "claimed" |
305 // instance once, prevent increment of reference count |
323 // instance once, prevent increment of reference count |