messagingfw/msgsrvnstore/server/src/cmsvconverterwaiter.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 04 Oct 2010 00:49:39 +0300
changeset 54 bb1b421e3b9e
parent 40 320ec5cd0227
permissions -rw-r--r--
Revision: 201037 Kit: 201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40
320ec5cd0227 Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 22
diff changeset
     1
// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
22
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     7
//
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    10
//
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    11
// Contributors:
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    12
//
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    13
// Description:
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    14
//
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    15
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    16
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    17
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    18
HEADER FILES
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    19
 */
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    20
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    21
#include "cmsvconverterwaiter.h"
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    22
#include "cmessageconvertermanager.h"
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    23
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    24
//const
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    25
const TUid KUidMsvIndexFile = {0x10003C6B};
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    26
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    27
static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    28
// literals
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    29
#if (defined SYMBIAN_MESSAGESTORE_UNIT_TESTCODE)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    30
	_LIT(KMessagingDBName, "\\messaging.db");
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    31
#else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    32
	_LIT(KMessagingDBName,"[1000484B]messaging.db");
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    33
#endif
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    34
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    35
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    36
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    37
// static class initialiser
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    38
CMsvConverterWaiter* CMsvConverterWaiter::iConverterWaiter = NULL;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    39
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    40
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    41
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    42
Instance()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    43
The function returns already created instance of
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    44
this class to the caller. To create a new instance
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    45
the caller should call InstanceL(). 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    46
@return CMsvConverterWaiter* : An instance of converter waiter.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    47
*/ 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    48
CMsvConverterWaiter* CMsvConverterWaiter::Instance()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    49
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    50
	return iConverterWaiter;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    51
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    52
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    53
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    54
InstanceL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    55
Instatiates converter waiter object.It is responsible for initiating and completing 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    56
message store conversion
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    57
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    58
@param aServer: Message Server Object
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    59
@return CMsvConverterWaiter* : An instance of converter waiter.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    60
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    61
CMsvConverterWaiter* CMsvConverterWaiter::InstanceL(CMsvServer* aServer)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    62
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    63
	if(iConverterWaiter == NULL)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    64
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    65
		CMsvConverterWaiter* self = new(ELeave)CMsvConverterWaiter(aServer);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    66
		iConverterWaiter = self;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    67
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    68
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    69
	return iConverterWaiter;	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    70
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    71
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    72
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    73
~CMsvConverterWaiter()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    74
 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    75
@param None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    76
@return: None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    77
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    78
 */
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    79
CMsvConverterWaiter::~CMsvConverterWaiter()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    80
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    81
	iConverterWaiter = NULL;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    82
	Cancel();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    83
	iConverterQueue.Close();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    84
	iConverterThread.Close();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    85
	// Free the handle to the property
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    86
	iProperty.Close();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    87
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    88
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    89
/*
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    90
CMsvConverterWaiter()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    91
Default constructor. Adds this active request into active scheduler queue.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    92
   
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    93
@param aServer: messaging server
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    94
@param iActive: active object
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    95
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    96
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    97
CMsvConverterWaiter::CMsvConverterWaiter(CMsvServer* aServer)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    98
: CActive(EPriorityLow),iServer(aServer)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
    99
	{ 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   100
	CActiveScheduler::Add(this); 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   101
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   102
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   103
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   104
DoCancel()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   105
Stub Code
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   106
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   107
@param : None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   108
@return: None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   109
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   110
void CMsvConverterWaiter::DoCancel()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   111
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   112
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   113
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   114
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   115
DefineProperty()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   116
Define the property and attached it.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   117
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   118
@param none.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   119
@return void.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   120
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   121
TInt CMsvConverterWaiter::DefineProperty()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   122
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   123
	// Define the property and create a handle to it
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   124
	TInt err = RProperty::Define(KMyPropertyCat, KMyPropertyName,RProperty::EInt,KAllowAllPolicy,KAllowAllPolicy);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   125
	if(!err)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   126
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   127
		iProperty.Attach(KMyPropertyCat,KMyPropertyName,EOwnerThread);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   128
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   129
	return err;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   130
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   131
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   132
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   133
PublishProperty()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   134
Publishing property.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   135
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   136
@param aValue : value will published.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   137
@return void.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   138
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   139
TInt CMsvConverterWaiter::PublishProperty(TInt aValue)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   140
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   141
	TInt err = iProperty.Set(aValue);	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   142
	return err;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   143
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   144
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   145
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   146
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   147
RunL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   148
Asynchronous request handler of an active object. 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   149
Invoked when a notification is received from the converter thread.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   150
Upon succesful conversion, this removes the index file , drive from the queue and closes 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   151
the converter thread.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   152
When the conversion is cancelled , it removes the partially converted database table fro headers
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   153
and completes the conversion request with KErrCancel.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   154
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   155
@param None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   156
@return: None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   157
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   158
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   159
void CMsvConverterWaiter::RunL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   160
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   161
	if(iStatus >= KErrNone)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   162
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   163
		//Update drive status for this drive. EMsvMessageStoreAvailableStatus
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   164
		iServer->UpdateDriveStatusL(TDriveUnit(iConverterQueue[0].iDriveNumber),EMsvMessageStoreAvailableStatus);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   165
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   166
		//Close the existing handle to the thread
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   167
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   168
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   169
		//Complete this request
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   170
		Completed(KErrNone);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   171
		iConverterThread.Close(); 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   172
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   173
	else if(iStatus == KErrCancel)	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   174
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   175
		// we would have published this property so we can safely delte it in case of cancel
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   176
		RProperty::Delete(KMyPropertyCat,KMyPropertyName);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   177
				
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   178
		iConverterThread.Close(); 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   179
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   180
		// The previous conversion request failed
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   181
		Completed(iStatus.Int());	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   182
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   183
	else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   184
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   185
		// The previous conversion request failed
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   186
		iConverterThread.Close(); 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   187
		Completed(iStatus.Int());
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   188
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   189
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   190
	// start conversion for the next drive in the queue
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   191
	if(iConverterQueue.Count())
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   192
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   193
		StartMessageStoreConversionL(iConverterQueue[0].iMessage,ETrue);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   194
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   195
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   196
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   197
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   198
StartMessageStoreConversionL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   199
Starts the message store conversion.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   200
Steps:
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   201
1. validates the drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   202
2. Creates a RThread object for conversion.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   203
3. Logons to the created thread to receive notofications.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   204
4. Resumes the converter thread and starts message store conversion.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   205
5. Marks this request as active. 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   206
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   207
@param aMessage: RMessage2 representing client request and containing request data.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   208
@param aQueuedRequest: Boolean flag specifying if the drive is queued.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   209
@return: None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   210
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   211
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   212
void CMsvConverterWaiter::StartMessageStoreConversionL(const RMessage2& aMessage,TBool aQueuedRequest)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   213
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   214
	_LIT(KConverterThread,"StartMessageStoreConversion");
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   215
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   216
	TDriveNumber driveNumber = (TDriveNumber) aMessage.Int0();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   217
	TInt error = KErrNone;	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   218
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   219
	//This is a new request, we need to validate this. 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   220
	//Note : the drive is already validated if it is in the queue.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   221
	if(!aQueuedRequest)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   222
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   223
		error = ValidateRequestedDriveL(driveNumber);		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   224
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   225
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   226
	if(error == KErrNone) // if proper
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   227
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   228
		if(!aQueuedRequest) // if it is not already queued
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   229
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   230
			TConversionQueue request;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   231
			request.iDriveNumber = driveNumber;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   232
			request.iMessage = aMessage;
40
320ec5cd0227 Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 22
diff changeset
   233
			iConverterQueue.AppendL(request);
22
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   234
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   235
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   236
		iDriveNumber = driveNumber;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   237
		TAny* conversionStatus = &iDriveNumber;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   238
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   239
		TInt err = iConverterThread.Create(KConverterThread, &CMessageConverterManager::StartConversion,KDefaultStackSize*8,KMinHeapSize,0x8000000,conversionStatus,EOwnerThread);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   240
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   241
		iStatus = KRequestPending;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   242
		if(!err)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   243
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   244
			iConverterThread.Logon(iStatus);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   245
			iConverterThread.Resume();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   246
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   247
		// activate this request
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   248
		SetActive();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   249
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   250
	else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   251
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   252
		// complete this request with the right error
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   253
		aMessage.Complete(error);			
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   254
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   255
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   256
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   257
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   258
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   259
QueueConversionRequestL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   260
Queues conversion request for a drive. A drive is queued for conversion when conversion is 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   261
currently in progress for a drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   262
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   263
@param aMessage: RMessage2 representing client request and containing request data.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   264
@return: None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   265
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   266
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   267
void CMsvConverterWaiter::QueueConversionRequestL(const RMessage2& aMessage)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   268
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   269
	TDriveNumber driveNumber = (TDriveNumber) aMessage.Int0();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   270
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   271
	TInt pos = 0;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   272
	TBool found = EFalse;	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   273
	while(pos < iConverterQueue.Count())
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   274
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   275
		if(iConverterQueue[pos++].iDriveNumber == driveNumber )// drive not in the queue
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   276
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   277
			found = ETrue;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   278
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   279
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   280
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   281
	if(found)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   282
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   283
		aMessage.Complete(KErrAlreadyExists);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   284
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   285
	else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   286
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   287
		TInt error = ValidateRequestedDriveL(driveNumber);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   288
		if(error == KErrNone)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   289
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   290
			//validation fine. Add this request
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   291
			TConversionQueue request;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   292
			request.iDriveNumber = driveNumber;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   293
			request.iMessage = aMessage;
40
320ec5cd0227 Revision: 201031
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 22
diff changeset
   294
			iConverterQueue.AppendL(request);
22
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   295
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   296
		else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   297
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   298
			aMessage.Complete(error);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   299
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   300
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   301
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   302
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   303
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   304
ValidateRequestedDriveL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   305
Validates the message store in the requested drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   306
It checks for the following conditions.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   307
1) Drive is present in preferred drive list.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   308
2) The drive is already present in conversion Queue.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   309
3) Checks if the version 1 message store is present 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   310
4) Identifies if version 0 message store is corrupt..
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   311
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   312
@param aDrive: Drive number.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   313
@return: None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   314
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   315
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   316
TInt CMsvConverterWaiter::ValidateRequestedDriveL(TDriveNumber aDrive)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   317
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   318
	// check if the drive is present in preferred drive list		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   319
	TInt error = ValidateDriveInPreferredDriveListL(aDrive);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   320
	if(error != KErrNone)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   321
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   322
		return error;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   323
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   324
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   325
	// Check if Version 1 message store exists. 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   326
	TParse parse;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   327
	TPtrC drive = TDriveUnit(aDrive).Name();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   328
	parse.Set(KMessagingDBName, &drive, NULL);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   329
	TFileName dbFileName = parse.FullName();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   330
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   331
	// check version 1 message store
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   332
	RSqlDatabase temp;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   333
	CleanupClosePushL(temp);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   334
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   335
	error = temp.Open(dbFileName);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   336
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   337
	temp.Close();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   338
	CleanupStack::PopAndDestroy();  // temp
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   339
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   340
	//Version 1 message store may be corrupt
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   341
	if(error == KSqlErrCorrupt )
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   342
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   343
		return error;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   344
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   345
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   346
	//version 1 does not exist, check version 0 is corrupt
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   347
	if(error == KErrNotFound) 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   348
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   349
		TBuf<KMaxPath> filePath;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   350
		TPtrC drive(TDriveUnit(aDrive).Name());
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   351
		filePath.Append(drive);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   352
		filePath.Append(KIndexFilePath);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   353
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   354
		RFs ifsSession;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   355
		User::LeaveIfError(ifsSession.Connect()); 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   356
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   357
		RFile file;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   358
		TInt error = file.Open(ifsSession, filePath, EFileShareAny|EFileWrite);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   359
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   360
		if(error==KErrNone)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   361
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   362
			CPermanentFileStore* iIndexStore = CPermanentFileStore::FromL(file);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   363
			CleanupStack::PushL(iIndexStore);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   364
			if (iIndexStore->Type() != TUidType(KPermanentFileStoreLayoutUid, KUidMsvIndexFile))
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   365
				{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   366
				User::Leave(KErrCorrupt);	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   367
				}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   368
			CleanupStack::PopAndDestroy(); // iIndexStore
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   369
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   370
		ifsSession.Close();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   371
		file.Close();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   372
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   373
	return KErrNone;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   374
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   375
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   376
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   377
isRunningMessageStoreConverter()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   378
Checks if converter waiter is active and waiting for completion of a conversion request. 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   379
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   380
@param None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   381
@return: Boolean flag specifying if the conversion is in progress,i,e if this active object is busy.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   382
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   383
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   384
TBool CMsvConverterWaiter::isRunningMessageStoreConverter()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   385
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   386
	if( iStatus == KRequestPending )
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   387
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   388
		return ETrue;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   389
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   390
	else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   391
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   392
		return EFalse;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   393
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   394
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   395
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   396
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   397
CancelConversionL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   398
Cancels conversion for a drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   399
Steps to cancel.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   400
1. Stop converter Thread.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   401
2. Remove the partially converted header table.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   402
3. Complete the asynchronous request for conversion of the drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   403
4. Remove The drive from the drive array.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   404
5. If more drives are found in the queue, than initiate conversion for the next drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   405
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   406
@param aMessage: RMessage2 representing client request and containing request data.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   407
@return None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   408
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   409
*/	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   410
void CMsvConverterWaiter::CancelConversionL(const RMessage2& aMessage)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   411
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   412
	//Get the drive
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   413
	TDriveNumber driveNumber = (TDriveNumber) aMessage.Int0();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   414
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   415
	TInt pos = 0;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   416
	TBool found = EFalse;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   417
	while(pos < iConverterQueue.Count())
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   418
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   419
		if(iConverterQueue[pos].iDriveNumber == driveNumber)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   420
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   421
			found = ETrue;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   422
			break;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   423
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   424
		else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   425
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   426
			pos++;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   427
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   428
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   429
		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   430
	if(pos == 0 && found)// this is the active request
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   431
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   432
		// Define cancel property 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   433
		TInt err = DefineProperty();	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   434
		if(err == KErrNone)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   435
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   436
			// published the property so that, conversion thread will releases the memory and return.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   437
			PublishProperty(KErrCancel);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   438
			aMessage.Complete(KErrNone);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   439
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   440
		else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   441
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   442
			aMessage.Complete(err);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   443
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   444
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   445
	else if(found)// this drive is queued
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   446
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   447
		aMessage.Complete(KErrNone);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   448
		iConverterQueue[pos].iMessage.Complete(KErrCancel);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   449
		iConverterQueue.Remove(pos);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   450
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   451
	else// invalid rive for cancellation
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   452
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   453
		aMessage.Complete(KErrNotFound);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   454
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   455
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   456
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   457
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   458
GetConversionStatus()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   459
Returns conversion status for a drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   460
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   461
@param aMessage: RMessage handle.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   462
@return None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   463
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   464
*/	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   465
void CMsvConverterWaiter::GetConversionStatus(const RMessage2& aMessage)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   466
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   467
	TDriveNumber driveNumber = (TDriveNumber) aMessage.Int0();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   468
	TInt pos = 0;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   469
	TBool found = EFalse;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   470
	while(pos < iConverterQueue.Count())
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   471
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   472
		if(iConverterQueue[pos++].iDriveNumber == driveNumber)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   473
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   474
			found = ETrue;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   475
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   476
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   477
	if(found)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   478
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   479
		if (pos == 0)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   480
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   481
			aMessage.Complete(0); // This request is active
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   482
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   483
		else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   484
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   485
			aMessage.Complete(1); // Drive is queued for conversion
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   486
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   487
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   488
	else
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   489
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   490
		aMessage.Complete(-1);	// drive not found
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   491
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   492
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   493
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   494
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   495
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   496
Completed()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   497
Completes the asynchronous request for message store conversion for the completed drive.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   498
When conversion completes successfully, it gets notified of the completion. 
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   499
The active conversion is alwasys the first element on the conversion queue.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   500
Upon compeltion, the first element in the queue gets compeleted.and the drive is removed
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   501
from the drive array.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   502
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   503
@param aStatus: MTM ID of the table.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   504
@return None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   505
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   506
*/	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   507
void CMsvConverterWaiter::Completed(const TInt aStatus)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   508
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   509
	iConverterQueue[0].iMessage.Complete(aStatus);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   510
	iConverterQueue.Remove(0);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   511
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   512
	}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   513
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   514
/**
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   515
ValidateDriveInPreferredDriveListL()
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   516
Validates a drive by checking if it is present in preferred drive list and its ststus is
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   517
EMsvMessageStoreNotSupportedStatus
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   518
Also checks if the drive is already queued for conversion and as such is a duplicate request.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   519
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   520
@param aDrive: Drive number.
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   521
@return None
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   522
@internalComponent
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   523
*/
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   524
TInt CMsvConverterWaiter::ValidateDriveInPreferredDriveListL(TDriveNumber aDrive)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   525
	{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   526
	CMsvPreferredDriveList *driveList = CMsvPreferredDriveList::GetDriveList();
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   527
	RArray<TDriveNumber> driveNumList;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   528
	CleanupClosePushL(driveNumList);
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   529
	TInt index;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   530
	for(index=0; index<driveList->Count(); index++)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   531
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   532
		if(EMsvMessageStoreNotSupportedStatus == (*driveList)[index].status)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   533
			{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   534
			driveNumList.AppendL((*driveList)[index].driveNum);		
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   535
			}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   536
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   537
	
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   538
	if( driveNumList.Find(aDrive) != KErrNotFound)
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   539
		{
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   540
		CleanupStack::PopAndDestroy();  // driveNumList
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   541
		return KErrNone;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   542
		}
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   543
	CleanupStack::PopAndDestroy();  // driveNumList
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   544
	return KErrNotFound;
bde600d88860 Revert last code drop.
Pat Downey <patd@symbian.org>
parents:
diff changeset
   545
	}