omads/omadsextensions/adapters/mms/inc/mmsadaptermsvapi.h
author hgs
Tue, 13 Jul 2010 03:39:25 +0530
changeset 40 b63e67867dcd
parent 0 dab8a81a92de
permissions -rw-r--r--
201025

/*
* Copyright (c) 2006-2007 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:  CMmsAdapterMsvApi header
*
*/


#ifndef MMSADAPTERMSVAPI_H
#define MMSADAPTERMSVAPI_H

//  INCLUDES
#include <msvstd.h>         // TMsvId
 
// CONSTANTS
const TInt KMsvMyFoldersEntryIdValue = 0x1008;
const TInt KMsvMyFoldersTemplatesFolderId = 0x1009;

// FORWARD DECLARATIONS
class CMsvSession;


// CLASS DECLARATION

/**
* Class CMmsAdapterMsvApi
* Internal class that provides access to SMS message store.
*/
class CMmsAdapterMsvApi : public CBase 
    {
    public:  // Constructors and destructor
        
        /**
        * Two-phased constructor.
        *
        * @param aMsvSession   IN: Access to message server
        *
        */
        static CMmsAdapterMsvApi* NewL(CMsvSession& aMsvSession);
                
        /**
        * Destructor.
        */
        virtual ~CMmsAdapterMsvApi();
        
    private: // Private constructor functions
        
        /**
        * C++ default constructor.
        * C++ default constructor can NOT contain any code, that
        * might leave.
        *
        * @param aMsvSession   IN: Access to message server
        *        
        */
        CMmsAdapterMsvApi(CMsvSession& aMsvSession);

        /**
        * By default Symbian 2nd phase constructor is private.
        */
        void ConstructL();        

    public: // New functions
	    
         
        /**
        * Delete user folder under My Folders
        * 
        * @param aUid   IN: the index to the folder, which will be deleted
        *
        * @return   KErrNone in success. KErrInUse if folder was not deleted because it was not empty.                             
        */         
        TInt DeleteUserFolderL( TMsvId aUid );
	
       /**
        * Valid folder checks if the folder is valid.
        * The caller of the function can set, if Outbox folder is valid or not.
        * 
        * @param aFolder   folder
        * @param aOutboxValid if the MM is outbox is valid folder or not
        * 
        * @return ETrue when the folder is valid.
        * @return EFalse when the folder is not valid.
        */
        TBool ValidFolderL( TMsvId aFolder , TBool aOutboxValid = ETrue );		
		
       /**
        * Creates new user defined folder
        * 
        * @param aFolder    OUT: index of the new folder
        * @param aName      IN: name of the new folder
        *
        * @return     KErrNone or error
        */				
		TInt AddUserFolderL( TMsvId& aFolder, const TDesC& aName );
		
       /**
        * Updates name of user defined folder
        * 
        * @param aFolder    IN: index of the folder
        * @param aName      IN: new name of the folder
        *
        * @return     KErrNone or error
        */					
		TInt UpdateUserFolderL( TMsvId aFolder, const TDesC& aName );
		
        /**
        * Searches user folder with given UID
        * 
        * @param aFolder     IN: Folder UID
        * @param aName       OUT: name of found user folder
        * @param aDate       OUT: time stamp of found user folder 
        *
        * @return	Return value indicates whether folder was found or not
        */	        
        TBool FindUserFolderL(TMsvId aFolder, TPtrC& aName, TTime& aDate);	
        
        /**
        * Searches user folder with given UID
        * 
        * @param aFolder     IN: Folder UID
        *
        * @return	Return value indicates whether folder was found or not
        */	        
        TBool FindUserFolderL(TMsvId aFolder);
        
    private:	// Internal functions

        /**
        * Check whether folder with given name exists
        * 
        * @param aName     IN: Folder name
        * @parem aFolder   OUT: Folder UID if matching folder was found. 
        *
        * @return	Return value indicates whether folder was found or not 
        */	       
        TBool FindUserFolderL(const TDesC& aName, TMsvId& aFolder);		
    
    private:    // Data
        
        CMsvSession& 			iSession;
    			
    };

#endif      //SMSADAPTERMSVAPI_H