common/tools/ats/smoketest/email/testutils/src/T_Utils.cpp
author victorp@symbian.org
Wed, 03 Feb 2010 16:06:24 +0000
changeset 872 17498133d9ad
parent 719 d5603c08781b
permissions -rw-r--r--
adding EPL headers to smoke test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
719
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
872
17498133d9ad adding EPL headers to smoke test
victorp@symbian.org
parents: 719
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
719
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
872
17498133d9ad adding EPL headers to smoke test
victorp@symbian.org
parents: 719
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
719
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     7
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    10
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    11
// Contributors:
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    12
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    13
// Description:
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    14
// This is the Cpp file which contains the utility functions common across the servers
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
// 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
//
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
 @file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
// User includes
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
#include <t_utils.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
#include <t_utilscentralrepository.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
// Epoc includes
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
#include <msvids.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
#include <bautils.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
#include <msvutils.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
#include <barsc.h>
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
// Literals Used
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
const TInt KDefBufferSize = 1024;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
CT_MsgUtils()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
Constructor
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
EXPORT_C CT_MsgUtils::CT_MsgUtils()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
~CT_MsgUtils()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
Constructor
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
CT_MsgUtils::~CT_MsgUtils()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
OpenResourceFileL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
Opens a resource File
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
@param rFile
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
Resource File Handle
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    64
@param anFs
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    65
File Session associated
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    66
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    67
@param aFileName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    68
The Name of resource File to be opened
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    69
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    70
EXPORT_C void CT_MsgUtils::OpenResourceFileL(RResourceFile& rFile, RFs& anFs, const TDesC& aFileName )
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    71
 	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    72
 	// open resource file
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    73
 	TFileName fileName(aFileName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    74
 	MsvUtils::AddPathAndExtensionToResFileL(fileName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    75
 	BaflUtils::NearestLanguageFile( anFs, fileName );
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    76
 	if (BaflUtils::FileExists(anFs,fileName))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    77
  		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    78
 		rFile.OpenL( anFs, fileName );
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    79
  		return;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    80
  		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    81
  	User::Leave(KErrNotFound);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    82
 	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    83
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    84
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    85
CloseResourceFile()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    86
Closes a recource File
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    87
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    88
@param aFile
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    89
The Name of resource File to be closed
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    90
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    91
 EXPORT_C void CT_MsgUtils::CloseResourceFile( TAny* aFile )
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    92
 	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    93
 	((RResourceFile*)aFile)->Close();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    94
 	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    95
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    96
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    97
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    98
FindEntryByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    99
Search the entries under a given folder ID by name of the entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   100
i.e, iDescription or iDetails value of an entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   101
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   102
@param aSession
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   103
Session object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   104
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   105
@param aParentId
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   106
Parent Id under which the entry needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   107
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   108
@param aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   109
The entry name that needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   110
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   111
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   112
Leaves if no entry's iDescription or iDetails matches with aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   113
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   114
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   115
Id of the entry that match 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   116
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   117
EXPORT_C TMsvId CT_MsgUtils::FindEntryByNameL(CMsvSession* aSession, TMsvId aParentId, TDesC& aEntryName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   118
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   119
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   120
	TMsvId msgEntryId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   121
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   122
	// Set the context to the Parent
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   123
	CMsvEntry* entry = CMsvEntry::NewL(*aSession, aParentId,TMsvSelectionOrdering
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   124
									(KMsvNoGrouping,EMsvSortByNone, ETrue));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   125
	CleanupStack::PushL(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   126
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   127
	entry->SetEntryL(aParentId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   128
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   129
 	msgEntryId = FindEntryByNameL(entry, aEntryName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   130
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   131
 	CleanupStack::PopAndDestroy(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   132
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   133
 	return msgEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   134
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   135
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   136
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   137
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   138
FindEntryByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   139
Search the entries under a given folder ID by name of the entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   140
i.e, iDescription or iDetails value of an entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   141
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   142
@param aSession
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   143
Session object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   144
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   145
@param aParentId
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   146
Parent Id under which the entry needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   147
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   148
@param aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   149
The entry name that needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   150
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   151
@param aParentEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   152
The Parent entry name that needs to be matched with the entry found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   153
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   154
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   155
Leaves if no entry's iDescription or iDetails matches with aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   156
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   157
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   158
Id of the entry that match 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   159
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   160
EXPORT_C TMsvId CT_MsgUtils::FindEntryByNameL(CMsvSession* aSession, TMsvId aParentId, TDesC& aEntryName, TDesC& aParentEntryName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   161
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   162
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   163
	TMsvId msgEntryId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   164
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   165
	// Set the context to the Parent
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   166
	CMsvEntry* entry = CMsvEntry::NewL(*aSession, aParentId,TMsvSelectionOrdering
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   167
									(KMsvNoGrouping,EMsvSortByNone, ETrue));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   168
	CleanupStack::PushL(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   169
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   170
	entry->SetEntryL(aParentId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   171
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   172
 	msgEntryId = FindEntryByNameL(entry, aEntryName, aParentEntryName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   173
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   174
 	CleanupStack::PopAndDestroy(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   175
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   176
 	return msgEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   177
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   178
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   179
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   180
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   181
FindEntryByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   182
Search the entries under a given entry(an object of CMsvEntry) by name of the entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   183
i.e, iDescription or iDetails value of an entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   184
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   185
@param aEntry	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   186
Parent entry under which the given entry needs to be searched
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   187
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   188
@param aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   189
The entry name that needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   190
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   191
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   192
Leaves if no entry's iDescription or iDetails matches with aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   193
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   194
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   195
Id of the entry that match 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   196
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   197
EXPORT_C TMsvId  CT_MsgUtils::FindEntryByNameL(CMsvEntry* aEntry,TDesC& aEntryName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   198
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   199
	TMsvId msgEntryId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   200
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   201
	msgEntryId = RecFindEntryByNameL(*aEntry, aEntryName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   202
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   203
	if(msgEntryId == KMsvNullIndexEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   204
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   205
		User::Leave(KErrNotFound);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   206
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   207
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   208
	return msgEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   209
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   210
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   211
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   212
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   213
FindEntryByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   214
Search the entries under a given entry(an object of CMsvEntry) by name of the entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   215
i.e, iDescription or iDetails value of an entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   216
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   217
@param aEntry	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   218
Parent entry under which the given entry needs to be searched
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   219
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   220
@param aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   221
The entry name that needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   222
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   223
@param aParentEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   224
The Parent entry name that needs to be matched with the entry found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   225
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   226
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   227
Leaves if no entry's iDescription or iDetails matches with aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   228
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   229
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   230
Id of the entry that match 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   231
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   232
EXPORT_C TMsvId  CT_MsgUtils::FindEntryByNameL(CMsvEntry* aEntry,TDesC& aEntryName, TDesC& aParentEntryName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   233
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   234
	TMsvId msgEntryId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   235
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   236
	msgEntryId = RecFindEntryByNameL(*aEntry, aEntryName, aParentEntryName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   237
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   238
	if(msgEntryId == KMsvNullIndexEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   239
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   240
		User::Leave(KErrNotFound);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   241
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   242
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   243
	return msgEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   244
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   245
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   246
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   247
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   248
RecFindEntryByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   249
Recursively search the entries (including all sub entries) under a given entry (an object of CMsvEntry) 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   250
by name of the entry i.e, iDescription or iDetails value of an entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   251
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   252
@param aEntry	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   253
Parent entry under which the given entry needs to be searched
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   254
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   255
@param aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   256
The entry name that needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   257
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   258
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   259
Leaves if no entry's iDescription or iDetails matches with aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   260
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   261
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   262
Id of the entry that match 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   263
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   264
TMsvId  CT_MsgUtils::RecFindEntryByNameL(CMsvEntry& aEntry, TDesC& aEntryName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   265
 	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   266
 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   267
 	TMsvId msgEntryId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   268
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   269
 	CMsvEntrySelection* selection = aEntry.ChildrenL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   270
 	CleanupStack::PushL(selection);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   271
 	// Search for the entry in the children selection, based on the entry name given
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   272
 	TBool	found = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   273
 	TInt count = selection->Count();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   274
 	for (TInt index = 0; (index<count) && (!found); index++)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   275
 		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   276
  		// Set the context to the child entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   277
  		aEntry.SetEntryL((*selection)[index]);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   278
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   279
		if (aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   280
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   281
			if (( aEntryName.Compare( aEntry.Entry().iDescription ) == 0 ) ||
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   282
			    ( aEntryName.Compare( aEntry.Entry().iDetails ) == 0 ))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   283
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   284
				found = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   285
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   286
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   287
		else if (( aEntryName.CompareF( aEntry.Entry().iDescription ) == 0 ) ||
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   288
		         ( aEntryName.CompareF( aEntry.Entry().iDetails ) == 0 ))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   289
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   290
			found = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   291
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   292
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   293
		if (found)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   294
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   295
			msgEntryId = (*selection)[index];
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   296
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   297
		else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   298
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   299
			CMsvEntry* nextEntry = CMsvEntry::NewL(aEntry.Session(), (*selection)[index],TMsvSelectionOrdering(KMsvNoGrouping, EMsvSortByNone, ETrue));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   300
			CleanupStack::PushL(nextEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   301
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   302
			msgEntryId = RecFindEntryByNameL(*nextEntry, aEntryName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   303
			if(msgEntryId != KMsvNullIndexEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   304
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   305
				found = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   306
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   307
   		CleanupStack::PopAndDestroy(nextEntry);  
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   308
   		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   309
 		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   310
		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   311
 	CleanupStack::PopAndDestroy(selection);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   312
 	return msgEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   313
 	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   314
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   315
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   316
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   317
RecFindEntryByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   318
Recursively search the entries (including all sub entries) under a given entry (an object of CMsvEntry) 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   319
by name of the entry i.e, iDescription or iDetails value of an entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   320
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   321
@param aEntry	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   322
Parent entry under which the given entry needs to be searched
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   323
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   324
@param aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   325
The entry name that needs to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   326
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   327
@param aParentEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   328
The Parent entry name that needs to be matched with the entry found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   329
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   330
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   331
Leaves if no entry's iDescription or iDetails matches with aEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   332
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   333
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   334
Id of the entry that match 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   335
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   336
TMsvId  CT_MsgUtils::RecFindEntryByNameL(CMsvEntry& aEntry, TDesC& aEntryName, TDesC& aParentEntryName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   337
 	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   338
 	TMsvId msgEntryId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   339
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   340
 	CMsvEntrySelection* selection = aEntry.ChildrenL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   341
 	CleanupStack::PushL(selection);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   342
 	// Search for the entry in the children selection, based on the entry name given
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   343
 	TBool	found = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   344
 	TInt count = selection->Count();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   345
	TBool matched = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   346
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   347
 	for (TInt index = 0; (index<count) && (!found); index++)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   348
 		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   349
  		// Set the context to the child entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   350
  		aEntry.SetEntryL((*selection)[index]);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   351
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   352
		matched = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   353
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   354
		if (aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   355
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   356
			if (( aEntryName.Compare( aEntry.Entry().iDescription ) == 0 ) ||
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   357
			    ( aEntryName.Compare( aEntry.Entry().iDetails ) == 0 ))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   358
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   359
				matched = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   360
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   361
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   362
		else if (( aEntryName.CompareF( aEntry.Entry().iDescription ) == 0 ) ||
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   363
		         ( aEntryName.CompareF( aEntry.Entry().iDetails ) == 0 ))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   364
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   365
			matched = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   366
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   367
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   368
		if (matched)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   369
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   370
			//Check Parent
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   371
			CMsvEntry* parentEntry = CMsvEntry::NewL(aEntry.Session(), aEntry.Entry().Parent(),TMsvSelectionOrdering(KMsvNoGrouping, EMsvSortByNone, ETrue));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   372
			CleanupStack::PushL(parentEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   373
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   374
			if(CheckParent(*parentEntry,aParentEntryName))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   375
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   376
				found = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   377
				msgEntryId = (*selection)[index];
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   378
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   379
			CleanupStack::PopAndDestroy(parentEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   380
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   381
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   382
		if (!found)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   383
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   384
			CMsvEntry* nextEntry = CMsvEntry::NewL(aEntry.Session(), (*selection)[index],TMsvSelectionOrdering(KMsvNoGrouping, EMsvSortByNone, ETrue));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   385
			CleanupStack::PushL(nextEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   386
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   387
			msgEntryId = RecFindEntryByNameL(*nextEntry, aEntryName, aParentEntryName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   388
			if(msgEntryId != KMsvNullIndexEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   389
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   390
				found = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   391
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   392
			CleanupStack::PopAndDestroy(nextEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   393
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   394
  		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   395
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   396
 	CleanupStack::PopAndDestroy(selection);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   397
 	return msgEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   398
 	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   399
 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   400
 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   401
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   402
CheckParent()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   403
Checks if the given parent name matches the name of the given parent entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   404
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   405
@param aParentEntry	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   406
Parent entry whose name is to be checked
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   407
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   408
@param aParentEntryName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   409
The Parent entry name that we are checking against
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   410
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   411
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   412
ETrue if they match and EFalse if they do not
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   413
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   414
TBool CT_MsgUtils::CheckParent(CMsvEntry& aParentEntry, TDesC& aParentEntryName)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   415
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   416
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   417
 	TBool ret = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   418
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   419
 	if (( aParentEntryName.CompareF( aParentEntry.Entry().iDescription ) == 0 ) ||
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   420
     	( aParentEntryName.CompareF( aParentEntry.Entry().iDetails ) == 0 ))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   421
 		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   422
 		ret = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   423
 		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   424
 	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   425
 	return ret;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   426
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   427
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   428
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   429
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   430
CreateChildrenSelectionL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   431
This function creates a selection of the children entries under a given parent Id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   432
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   433
@param aSession	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   434
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   435
		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   436
@param aEntryId	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   437
Id of the entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   438
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   439
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   440
Returns a selection of all child entries under the given entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   441
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   442
EXPORT_C CMsvEntrySelection* CT_MsgUtils::CreateChildrenSelectionL(CMsvSession* aSession, 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   443
																   TMsvId       aEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   444
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   445
	CMsvEntry* entry = CMsvEntry::NewL(*aSession, aEntryId,TMsvSelectionOrdering
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   446
									( KMsvNoGrouping,EMsvSortByNone, ETrue));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   447
	CleanupStack::PushL(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   448
	entry->SetEntryL(aEntryId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   449
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   450
	TMsvSelectionOrdering order;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   451
	order.SetShowInvisibleEntries(ETrue);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   452
	entry->SetSortTypeL(order);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   453
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   454
	CMsvEntrySelection* selection = entry->ChildrenL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   455
	CleanupStack::PopAndDestroy(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   456
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   457
	return selection;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   458
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   459
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   460
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   461
CreateChildrenSelectionWithTypeL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   462
This function creates a selection of the children entries under a given parent Id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   463
which are of a specified type.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   464
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   465
@param aSession	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   466
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   467
		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   468
@param aEntryId	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   469
Id of the entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   470
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   471
@param aType
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   472
Type of entry to look for
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   473
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   474
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   475
Returns a selection of all child entries under the given entry of the specified type
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   476
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   477
EXPORT_C CMsvEntrySelection* CT_MsgUtils::CreateChildrenSelectionWithTypeL(CMsvSession* aSession, TMsvId aEntryId, TUid aType)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   478
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   479
	CMsvEntry* entry = CMsvEntry::NewL(*aSession, aEntryId, TMsvSelectionOrdering(KMsvNoGrouping, EMsvSortByNone, ETrue));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   480
	CleanupStack::PushL(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   481
	entry->SetEntryL(aEntryId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   482
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   483
	TMsvSelectionOrdering order;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   484
	order.SetShowInvisibleEntries(ETrue);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   485
	entry->SetSortTypeL(order);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   486
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   487
	CMsvEntrySelection* selection = entry->ChildrenWithTypeL(aType);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   488
	CleanupStack::PopAndDestroy(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   489
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   490
	return selection;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   491
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   492
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   493
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   494
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   495
CreateChildrenSelectionRemoteFolderL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   496
This function creates a selection of the child entries under the 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   497
remote folder Id if the service name is specified
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   498
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   499
@param aSession		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   500
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   501
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   502
@param aAccountName	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   503
The account name or service name
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   504
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   505
@param aFolderName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   506
The name of the remote folder whose entries need to be fetched
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   507
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   508
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   509
The selection of all entries under the given entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   510
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   511
EXPORT_C CMsvEntrySelection*  CT_MsgUtils::CreateChildrenSelectionRemoteFolderL(CMsvSession*
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   512
										aSession,TPtrC aAccountName,TPtrC aFolderName)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   513
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   514
	TMsvId remoteFolderId = GetRemoteFolderIdByNameL(aSession, aAccountName, aFolderName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   515
	return 	CreateChildrenSelectionL(aSession,remoteFolderId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   516
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   517
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   518
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   519
CreateChildrenSelectionRemoteFolderWithTypeL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   520
This function creates a selection of the child entries under the 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   521
remote folder Id with a specified type if the service name is specified
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   522
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   523
@param aSession		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   524
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   525
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   526
@param aAccountName	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   527
The account name or service name
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   528
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   529
@param aFolderName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   530
The name of the remote folder whose entries need to be fetched
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   531
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   532
@param aType
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   533
Type of entry to look for
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   534
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   535
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   536
The selection of all entries under the given entry with the specified type
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   537
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   538
EXPORT_C CMsvEntrySelection*  CT_MsgUtils::CreateChildrenSelectionRemoteFolderWithTypeL(CMsvSession*
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   539
										aSession,TPtrC aAccountName,TPtrC aFolderName, TUid aType)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   540
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   541
	TMsvId remoteFolderId = GetRemoteFolderIdByNameL(aSession, aAccountName, aFolderName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   542
	return CreateChildrenSelectionWithTypeL(aSession, remoteFolderId, aType);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   543
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   544
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   545
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   546
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   547
GetRemoteFolderIdByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   548
Searches for a given entry under the remote folder Id specified and gets it Id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   549
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   550
@param aSession		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   551
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   552
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   553
@param aAccountName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   554
The account name
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   555
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   556
@param aFolderName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   557
The name of the remote folder whose Id is to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   558
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   559
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   560
The Id of the specified folder
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   561
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   562
EXPORT_C TMsvId CT_MsgUtils::GetRemoteFolderIdByNameL(CMsvSession* aSession,TPtrC aAccountName,TPtrC aFolderName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   563
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   564
	TMsvId imapServiceId = CT_MsgUtilsCentralRepository::GetImapServiceIdL((TDes&)aAccountName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   565
	return CT_MsgUtils::FindEntryByNameL(aSession, imapServiceId, (TDesC&)aFolderName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   566
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   567
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   568
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   569
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   570
GetRemoteFolderIdByNameL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   571
Searches for a given entry under the remote folder Id specified and gets it Id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   572
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   573
@param aSession		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   574
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   575
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   576
@param aAccountName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   577
The account name
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   578
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   579
@param aFolderName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   580
The name of the remote folder whose Id is to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   581
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   582
@param aFolderName
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   583
The name of the remote parent folder of the entry to be found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   584
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   585
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   586
The Id of the specified folder
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   587
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   588
EXPORT_C TMsvId CT_MsgUtils::GetRemoteFolderIdByNameL(CMsvSession* aSession,TPtrC aAccountName,TPtrC aFolderName, TPtrC aParentFolderName, TBool aCaseSensitive)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   589
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   590
	TMsvId imapServiceId = CT_MsgUtilsCentralRepository::GetImapServiceIdL((TDes&)aAccountName);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   591
	return CT_MsgUtils::FindEntryByNameL(aSession, imapServiceId, (TDesC&)aFolderName, (TDesC&)aParentFolderName, aCaseSensitive);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   592
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   593
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   594
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   595
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   596
SearchMessageBySubjectL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   597
This function searches for a message based on the 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   598
subject under the specified local folder
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   599
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   600
@param aSession
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   601
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   602
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   603
@param afolderId
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   604
The folder Id under which the search needs to be done
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   605
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   606
@param aSubject
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   607
The subject name of the message
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   608
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   609
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   610
Leaves if the message is not found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   611
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   612
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   613
If the message is found it returns the message Id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   614
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   615
EXPORT_C TMsvId CT_MsgUtils::SearchMessageBySubjectL(CMsvSession* aSession,TMsvId afolderId,TPtrC aSubject)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   616
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   617
	TMsvId	messageId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   618
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   619
	CMsvEntry*	entry = aSession->GetEntryL(afolderId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   620
	CleanupStack::PushL(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   621
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   622
	// Set the entry to the source folder id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   623
	entry->SetEntryL(afolderId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   624
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   625
	//Get CMsvEntrySelection object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   626
	CMsvEntrySelection*	selection = entry->ChildrenL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   627
	CleanupStack::PushL(selection);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   628
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   629
	TInt count = selection->Count();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   630
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   631
	if ( count > 0)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   632
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   633
		CMsvEntry*	childEntry = aSession->GetEntryL(selection->At(0));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   634
		CleanupStack::PushL(childEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   635
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   636
		for(TInt entryIndex = 0 ; entryIndex< count; entryIndex++)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   637
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   638
			childEntry->SetEntryL(selection->At(entryIndex));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   639
					
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   640
			if (childEntry->Entry().iDescription.Compare(aSubject) == 0)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   641
				{	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   642
				messageId = selection->At(entryIndex);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   643
				break;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   644
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   645
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   646
		CleanupStack::PopAndDestroy(childEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   647
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   648
	if(messageId == KMsvNullIndexEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   649
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   650
		User::Leave(KErrNotFound);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   651
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   652
	CleanupStack::PopAndDestroy(2,entry);	//selection,entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   653
	return messageId; 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   654
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   655
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   656
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   657
SearchMessageBySubjectL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   658
This function searches for a message based on the subject 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   659
under the specified local folder. This fucntion provides the
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   660
flexibility of making the invisible children entries visible.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   661
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   662
@param aSession
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   663
A CMsvSession object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   664
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   665
@param afolderId
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   666
The folder Id under which the search needs to be done
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   667
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   668
@param aSubject
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   669
The subject name of the message
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   670
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   671
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   672
Leaves if the message is not found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   673
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   674
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   675
If the message is found it returns the message Id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   676
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   677
EXPORT_C TMsvId CT_MsgUtils::SearchMessageBySubjectL(CMsvSession* aSession,TMsvId afolderId,TPtrC aSubject, TBool aVisibleFlag)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   678
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   679
	TMsvId	messageId = KMsvNullIndexEntryId;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   680
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   681
	CMsvEntry*	entry = aSession->GetEntryL(afolderId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   682
	CleanupStack::PushL(entry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   683
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   684
	// Set the entry to the source folder id
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   685
	entry->SetEntryL(afolderId);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   686
	if(aVisibleFlag)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   687
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   688
		// Make the message entries visible
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   689
		TMsvSelectionOrdering order;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   690
		order.SetShowInvisibleEntries(ETrue);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   691
		entry->SetSortTypeL(order);	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   692
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   693
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   694
	//Get CMsvEntrySelection object
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   695
	CMsvEntrySelection*	selection = entry->ChildrenL();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   696
	CleanupStack::PushL(selection);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   697
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   698
	TInt count = selection->Count();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   699
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   700
	if ( count > 0)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   701
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   702
		CMsvEntry*	childEntry = aSession->GetEntryL(selection->At(0));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   703
		CleanupStack::PushL(childEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   704
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   705
		for(TInt entryIndex = 0 ; entryIndex< count; entryIndex++)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   706
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   707
			childEntry->SetEntryL(selection->At(entryIndex));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   708
					
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   709
			if (childEntry->Entry().iDescription.Compare(aSubject) == 0)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   710
				{	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   711
				messageId = selection->At(entryIndex);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   712
				break;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   713
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   714
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   715
		CleanupStack::PopAndDestroy(childEntry);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   716
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   717
	if(messageId == KMsvNullIndexEntryId)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   718
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   719
		User::Leave(KErrNotFound);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   720
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   721
	CleanupStack::PopAndDestroy(2,entry);	//selection,entry
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   722
	return messageId; 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   723
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   724
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   725
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   726
CompareFilesL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   727
Compares two input files (ASCII & Unicode).
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   728
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   729
@param aFileOne
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   730
The first file to be compared
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   731
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   732
@param aFileTwo
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   733
The second file to be compared
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   734
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   735
@param aIsUnicode
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   736
To check if its unicode
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   737
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   738
@param aIgnoreCharList
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   739
An array of type CArrayFixFlat
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   740
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   741
@param aDiffFlag
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   742
Flag to indicate the difference
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   743
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   744
@return
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   745
Returns ETrue if the files are different.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   746
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   747
EXPORT_C TInt CT_MsgUtils::CompareFilesL(TPtrC aFileOne, TPtrC aFileTwo, TBool aIsUnicode,
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   748
									  CArrayFixFlat<TUint16>* aIgnoreCharList, TBool& aDiffFlag)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   749
	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   750
	// Return Code
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   751
	TInt retCode = KErrNone;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   752
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   753
	// Streams for the file1 and file2 to compare
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   754
	RFileReadStream fileReadStream1;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   755
	RFileReadStream fileReadStream2;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   756
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   757
	// Files difference flag
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   758
	aDiffFlag = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   759
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   760
	RFs iFs;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   761
	User::LeaveIfError(iFs.Connect());
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   762
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   763
	// Open file one to compare in the read only mode
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   764
	retCode = fileReadStream1.Open( iFs, aFileOne, EFileShareReadersOnly);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   765
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   766
	// If the file open of the first file is successful then open the second file, also in read only mode
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   767
	if(retCode == KErrNone)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   768
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   769
		retCode = fileReadStream2.Open( iFs, aFileTwo, EFileShareReadersOnly);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   770
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   771
		// The file open of the second file is successful
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   772
		if(retCode == KErrNone)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   773
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   774
			// To hold the line content of file one 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   775
			HBufC* lineOneBuffer = HBufC::NewLC(KDefBufferSize);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   776
			TPtr ptrLineOne = lineOneBuffer->Des();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   777
			
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   778
			// To hold the line content of file two
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   779
			HBufC* lineTwoBuffer = HBufC::NewLC(KDefBufferSize);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   780
			TPtr ptrLineTwo = lineTwoBuffer->Des();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   781
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   782
			// End of File indicators
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   783
			TBool	eofOne = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   784
			TBool	eofTwo = EFalse; 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   785
			
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   786
			// Read the file one and file two data
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   787
			do   
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   788
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   789
				// Read file one data
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   790
				eofOne = ReadDataL(fileReadStream1, ptrLineOne, aIsUnicode, aIgnoreCharList);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   791
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   792
				// Read file two data
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   793
				eofTwo = ReadDataL(fileReadStream2, ptrLineTwo, aIsUnicode, aIgnoreCharList);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   794
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   795
				// Check EOF state of the files.
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   796
				// Either both the files will be in EOF state or 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   797
				// none of the files will be in EOF state			  
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   798
				if((!eofOne && !eofTwo)||(eofOne && eofTwo))
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   799
	            	{			
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   800
					// Compare the read lines from file one and the file two
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   801
					if(ptrLineOne.Compare(ptrLineTwo) != 0)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   802
						{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   803
						// Different data content so set the differnce flag
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   804
						aDiffFlag = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   805
						}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   806
					}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   807
				else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   808
					{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   809
					// Different EOF 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   810
					aDiffFlag = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   811
					}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   812
				} while(!eofOne && !eofTwo && !aDiffFlag);				
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   813
			
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   814
			// Delete line buffers
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   815
			CleanupStack::PopAndDestroy(2, lineOneBuffer);				
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   816
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   817
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   818
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   819
	// Close the open streams
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   820
	fileReadStream1.Close();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   821
	fileReadStream2.Close();	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   822
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   823
	iFs.Close();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   824
	// Return the difference flag
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   825
	return retCode;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   826
	}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   827
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   828
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   829
/**
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   830
ReadDataL()
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   831
Reads data chunk from the file stream. Returns ETrue if the EOF found
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   832
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   833
@param aFileReadStream
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   834
File Stream
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   835
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   836
@param aPtrLineBuffer		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   837
Buffer to hold a line
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   838
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   839
@param aIsUnicode
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   840
To check if its unicode
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   841
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   842
@param aIgnoreCharList
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   843
List of the characters to be ignored
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   844
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   845
@leave KErrNotFound
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   846
Leaves if aIgnoreCharList is empty
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   847
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   848
@return 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   849
Return end of file flag	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   850
*/
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   851
EXPORT_C TBool CT_MsgUtils::ReadDataL(RFileReadStream& aFileReadStream,
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   852
	  TPtr& aPtrLineBuffer, TBool aIsUnicode, CArrayFixFlat<TUint16>* aIgnoreCharList)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   853
 	{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   854
	TUint16			element = 0;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   855
	TKeyArrayFix	key(0, ECmpTUint16);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   856
	TInt			charPosition = 0;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   857
	TBool			eof = EFalse;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   858
	TInt			errorCode = KErrNone;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   859
	TUint8			aCharASCII = 0;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   860
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   861
	aPtrLineBuffer.FillZ();
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   862
	aPtrLineBuffer.SetLength(0);	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   863
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   864
	// Validate the input ignore char list
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   865
	if (!aIgnoreCharList)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   866
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   867
		// Invalid parameter passed to ReadDataL: No ignore char list passed
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   868
		User::Leave(KErrNotFound);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   869
		}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   870
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   871
	// Read data from file and store it in lineBuffer 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   872
	do   
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   873
		{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   874
		if(aIsUnicode)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   875
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   876
			TRAP(errorCode, (element = aFileReadStream.ReadUint16L()));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   877
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   878
		else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   879
			{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   880
			TRAP(errorCode, (aCharASCII = aFileReadStream.ReadUint8L()));
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   881
			element = (TUint16) aCharASCII;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   882
			}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   883
			
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   884
		if (errorCode != KErrEof)
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   885
			{		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   886
			// Check the availability of ignore char in the array							
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   887
			if ( aIgnoreCharList->Find(element, key, charPosition) != KErrNone )
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   888
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   889
				// Append the char to the buffer if the read char is not ignore char
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   890
				aPtrLineBuffer.Append(element);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   891
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   892
			}								
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   893
			else
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   894
				{
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   895
				eof = ETrue;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   896
				break;
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   897
				}
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   898
				
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   899
			// Stop at the end of line or no more data 
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   900
			} while(aPtrLineBuffer.Length() < KDefBufferSize);
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   901
	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   902
	// Return end of file flag		
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   903
	return eof;	
d5603c08781b Added smoketest for email
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   904
	}