| author | Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> | 
| Tue, 31 Aug 2010 15:11:31 +0300 | |
| branch | RCL_3 | 
| changeset 57 | ebe688cedc25 | 
| permissions | -rw-r--r-- | 
| 57 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 1 | /* | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 2 | * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 3 | * All rights reserved. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 4 | * This component and the accompanying materials are made available | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 5 | * under the terms of "Eclipse Public License v1.0" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 6 | * which accompanies this distribution, and is available | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 7 | * at the URL "http://www.eclipse.org/legal/epl-v10.html". | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 8 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 9 | * Initial Contributors: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 10 | * Nokia Corporation - initial contribution. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 11 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 12 | * Contributors: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 13 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 14 | * Description: CS Server Delete Handler | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 15 | * | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 16 | */ | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 17 | // INCLUDES | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 18 | #include <ccsclientconversation.h> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 19 | #include <ccsconversationentry.h> | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 20 | #include "ccsconversationcache.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 21 | #include "ccsconversationdeletehandler.h" | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 22 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 23 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 24 | // CCsConversationDeleteHandler::NewL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 25 | // Two Phase Construction | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 26 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 27 | CCsConversationDeleteHandler* CCsConversationDeleteHandler:: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 28 | NewL(CCsConversationCache* aCache) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 29 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 30 | CCsConversationDeleteHandler* self = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 31 | new (ELeave) CCsConversationDeleteHandler(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 32 | CleanupStack::PushL(self); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 33 | self->ConstructL(aCache); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 34 | CleanupStack::Pop(self); // self | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 35 | return self; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 36 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 37 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 38 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 39 | // Constructor | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 40 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 41 | CCsConversationDeleteHandler::CCsConversationDeleteHandler(): | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 42 | CActive(CActive::EPriorityLow), | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 43 | iState(EIdle), | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 44 | iConversationEntryList(NULL) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 45 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 46 | CActiveScheduler::Add( this ); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 47 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 48 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 49 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 50 | // Constructor | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 51 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 52 | void CCsConversationDeleteHandler::ConstructL(CCsConversationCache* aCache) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 53 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 54 | iCache = aCache; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 55 | iSession = CMsvSession::OpenSyncL(*this); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 56 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 57 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 58 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 59 | // Destructor | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 60 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 61 | CCsConversationDeleteHandler::~CCsConversationDeleteHandler() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 62 | {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 63 | // Make sure Aync request cancel. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 64 | Cancel(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 65 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 66 | if(iSession) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 67 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 68 | delete iSession; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 69 | iSession = NULL; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 70 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 71 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 72 | if (iConversationEntryList) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 73 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 74 | iConversationEntryList->ResetAndDestroy(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 75 | iConversationEntryList->Close(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 76 | delete iConversationEntryList; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 77 | iConversationEntryList = NULL; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 78 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 79 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 80 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 81 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 82 | // Delete set of messages | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 83 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 84 | void CCsConversationDeleteHandler::DeleteL(TInt aConversationId) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 85 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 86 | // Check if delete in progress | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 87 | if ( iCache->IsDeleted(aConversationId) ) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 88 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 89 | // Deletion is in progress for this conversation, so clean up this AO | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 90 | delete this; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 91 | return; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 92 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 93 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 94 | // Store conversationId currently being deleted. | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 95 | iConversationId = aConversationId; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 96 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 97 | // Temp client conversation object | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 98 | CCsClientConversation* clientConversation = CCsClientConversation::NewL(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 99 | clientConversation->SetConversationEntryId(iConversationId); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 100 | CleanupStack::PushL(clientConversation); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 101 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 102 | // Create entry list | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 103 | iConversationEntryList = new (ELeave)RPointerArray<CCsConversationEntry> (); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 104 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 105 | // Get conversationlist for given client conversation | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 106 | iCache->GetConversationsL (clientConversation, iConversationEntryList); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 107 | iCache->MarkConversationAsDeleted(iConversationId, ETrue); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 108 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 109 | iDeletedCount = 0; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 110 | iSendStateMsgs = 0; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 111 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 112 | // Cleanup | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 113 | CleanupStack::PopAndDestroy(clientConversation); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 114 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 115 | iState = EDeleteStart; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 116 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 117 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 118 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 119 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 120 | // Delete a message | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 121 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 122 | void CCsConversationDeleteHandler::DeleteOneMessage() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 123 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 124 | CCsConversationEntry* entry = | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 125 | static_cast<CCsConversationEntry*>((*iConversationEntryList)[iDeletedCount]); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 126 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 127 | TInt id = entry->EntryId(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 128 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 129 | if ( ECsSendStateSending != entry->GetSendState() ) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 130 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 131 | iSession->RemoveEntry(id); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 132 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 133 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 134 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 135 | iSendStateMsgs++; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 136 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 137 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 138 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 139 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 140 | // RunL | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 141 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 142 | void CCsConversationDeleteHandler::RunL() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 143 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 144 | switch ( iState ) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 145 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 146 | case EDeleteStart: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 147 | if ( iConversationEntryList->Count() > 0 ) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 148 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 149 | iDeletedCount = iConversationEntryList->Count(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 150 | iState = EDeleteNext; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 151 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 152 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 153 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 154 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 155 | iState = EDeleteComplete; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 156 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 157 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 158 | break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 159 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 160 | case EDeleteNext: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 161 | iDeletedCount--; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 162 | DeleteOneMessage(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 163 | if ( iDeletedCount > 0 ) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 164 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 165 | iState = EDeleteNext; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 166 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 167 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 168 | else | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 169 |                 {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 170 | iState = EDeleteComplete; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 171 | IssueRequest(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 172 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 173 | break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 174 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 175 | case EDeleteComplete: | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 176 | iCache->MarkConversationAsDeleted(iConversationId, EFalse, iSendStateMsgs ); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 177 | delete this; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 178 | break; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 179 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 180 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 181 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 182 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 183 | // DoCancel | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 184 | // ---------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 185 | void CCsConversationDeleteHandler::DoCancel() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 186 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 187 | // Not supported | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 188 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 189 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 190 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 191 | // Move to next state | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 192 | // --------------------------------------------------------------------------- | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 193 | // | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 194 | void CCsConversationDeleteHandler::IssueRequest() | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 195 |     {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 196 | if( !IsActive() ) | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 197 |         {
 | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 198 | iStatus = KRequestPending; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 199 | TRequestStatus* status = &iStatus; | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 200 | SetActive(); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 201 | User::RequestComplete(status, KErrNone); | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 202 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 203 | } | 
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 204 | |
| 
ebe688cedc25
Revision: 201033
 Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com> parents: diff
changeset | 205 | // EOF |