--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msgfw_plat/muiu_utils_api/inc/MuiuServiceUtilities.h Fri Apr 16 15:27:42 2010 +0300
@@ -0,0 +1,147 @@
+/*
+* Copyright (c) 2002 - 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MuiuServiceUtilities declaration
+*
+*/
+
+
+
+
+#ifndef __MUIUSERVICEUTILITIES_H__
+#define __MUIUSERVICEUTILITIES_H__
+
+// INCLUDES
+#include <msvipc.h>
+
+// FORWARD DECLARATIONS
+class CMsvSession;
+class RFs;
+
+
+/**
+* Static class to help service handling.
+*/
+class MsvUiServiceUtilities
+ {
+ public:
+
+ /**
+ * Collects all the services.
+ * @param aSession: reference to CMsvSession object
+ * @param aAlwaysListHidden: boolean to show hidden services or not.
+ * @return array of all the services found.
+ * NOTE: Calling module is responsible to delete array.
+ */
+ IMPORT_C static CMsvEntrySelection* GetListOfAccountsL(
+ CMsvSession& aSession,
+ TBool aAlwaysListHidden=EFalse );
+
+ /**
+ * Collects all the services of certain mtm type.
+ * @param aSession: reference to CMsvSession object
+ * @param aMtm: uid of the mtm type to be searched.
+ * @param aAlwaysListHidden: boolean to show hidden services or not.
+ * @return array of all the services found.
+ * NOTE: Calling module is responsible to delete array.
+ */
+ IMPORT_C static CMsvEntrySelection* GetListOfAccountsWithMTML(
+ CMsvSession& aSession,
+ TUid aMtm,
+ TBool aAlwaysListHidden=EFalse );
+ /**
+ * Checks if the disk storage will fall below Critical Level (CL)
+ * if a number of bytes are stored to the disk. Takes account where
+ * message store resides (in c: or possible in memory card).
+ * The CL is defined by SysUtil.
+ * Usage os this function is same as SysUtil::FFSSpaceBelowCriticalLevelL.
+ * @param aSession: reference to CMsvSession object
+ * @param aBytesToWrite number of bytes the caller is about to add
+ * to the disk, if known by the caller beforehand.
+ * If not known, the default value 0 checks if the current
+ * space is already below the CR.
+ * @return ETrue if storage space would go below CL after adding
+ * aBytes more data, EFalse otherwise.
+ *
+ */
+ IMPORT_C static TBool DiskSpaceBelowCriticalLevelL( CMsvSession& aSession,
+ TInt aBytesToWrite );
+
+ /**
+ * Checks if the disk storage will fall below critical level when performing
+ * an operation which consumes phone memory in addition to message
+ * store memory.
+ *
+ * For example, sending consumes always memory from CDrive is current drive CDrive or not.
+ *
+ * If current drive is not CDrive then check that free memory of CDrive is greater than
+ * aPhoneMemoryOverheadBytes plus KDRIVECCRITICALTHRESHOLD(defined in SharedDataKeys.h) .
+ * After that check that free memory of current drive is
+ * greater than aBytesToWrite plus KDRIVECCRITICALTHRESHOLD.
+ *
+ * If current drive is CDrive then check that free memory of CDrive is greater than
+ * aPhoneMemoryOverheadBytes plus aBytesToWrite plus KDRIVECCRITICALTHRESHOLD.
+ *
+ * @param aSession: reference to CMsvSession object
+ * @param aBytesToWrite number of bytes the caller is about to add
+ * to the disk, if known by the caller beforehand.
+ * If not known, the default value 0 checks if the current
+ * space is already below the CR.
+ * @param aPhoneMemoryOverheadBytes Sending consumes always memory from C drive.
+ * So if current drive is memory card or other than CDrive we must
+ * check that free memory of CDrive is greater than aPhoneMemoryOverheadBytes plus
+ * KDRIVECCRITICALTHRESHOLD.
+ * @return ETrue if storage space would go below critical level, EFalse otherwise.
+ */
+ IMPORT_C static TBool DiskSpaceBelowCriticalLevelWithOverheadL( CMsvSession& aSession,
+ TInt aBytesToWrite,
+ TInt aPhoneMemoryOverheadBytes );
+
+ /**
+ * Test if aAddress is format <name>'@'<domain>
+ * If <name> is between "-marks, it can contain any chars between ' ' and Del
+ * (127).
+ * Otherwise it can contain chars between ' ' and Del (127),
+ * but not centain special chars.
+ * Valid name can not contain two dots sequense.
+ * <domain>-part is tested with function IsValidDomainL.
+ * @since 3.0
+ * @param aAddress: email address to be checked.
+ * @return Returns ETrue if aAddress is a lexically valid emailaddress.
+ */
+ IMPORT_C static TBool IsValidEmailAddressL( const TDesC& aAddress );
+
+ /**
+ * Test if aDomain is format <char>+{"."<char>+}+
+ * Valid char is char between ' ' and Del (127).
+ * Valid domain name can not include centain special chars.
+ * @since 3.0
+ * @param aDomain: domain to be checked.
+ * @return Returns ETrue if aDomain is a lexically valid domain name.
+ */
+ IMPORT_C static TBool IsValidDomainL( const TDesC& aAddress );
+
+ private:
+ /**
+ * internal
+ */
+ static CMsvEntrySelection* DoGetListOfAccountsL(
+ CMsvSession& aSession,
+ TUid aMtm,
+ TBool aAlwaysListHidden=EFalse);
+
+ };
+
+#endif //__MUIUSERVICEUTILITIES_H__
+
+// End of file