diff -r 000000000000 -r 72b543305e3a email/imum/DomainApi/inc/ImumDaMailboxUtilitiesImpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/DomainApi/inc/ImumDaMailboxUtilitiesImpl.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,166 @@ +/* +* Copyright (c) 2006 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: ImumDaMailboxUtilitiesImpl.h + * +*/ + + +#ifndef C_IMUMDAMAIBOXUTILITIESIMPL_H +#define C_IMUMDAMAIBOXUTILITIESIMPL_H + +#include "ImumDaMailboxUtilities.h" +#include "ImumInternalApi.h" +#include "ImumInHealthServices.h" + +class MImumInMailboxUtilities; + +NONSHARABLE_CLASS( CImumDaMailboxUtilitiesImpl ): public MImumDaMailboxUtilities + { + public: // Constructors and destructor + + /** + * Create object from CImumDaMailboxUtilitiesImpl + * + * @since S60 3.2 + * @param aMailboxApi, Reference to internal api. + * @return, Constructed object + */ + static CImumDaMailboxUtilitiesImpl* NewL( CImumInternalApi& aMailboxApi ); + + /** + * Creates object from CImumDaMailboxUtilitiesImpl and leaves it to cleanup stack + * + * @since S60 3.2 + * @param aMailboxApi, Reference to internal api. + * @return, Constructed object + */ + static CImumDaMailboxUtilitiesImpl* NewLC( CImumInternalApi& aMailboxApi ); + + /** + * Destructor + * @since S60 3.2 + */ + virtual ~CImumDaMailboxUtilitiesImpl(); + + protected: // Constructors + + /** + * Default constructor for CImumDaMailboxUtilitiesImpl + * + * @since S60 3.2 + * @param aMailboxApi, Reference to internal api. + * @return, Constructed object + */ + CImumDaMailboxUtilitiesImpl( CImumInternalApi& aMailboxApi ); + + /** + * Symbian 2-phase constructor + * @since S60 3.2 + */ + void ConstructL(); + + public: //From class MImumDaMailboxUtilities + + /** + * Retrieves the id (sending) of the default mailbox in the system. + * + * @since S60 v3.2 + * @return Id of the default mailbox + */ + TMsvId DefaultMailboxId() const; + + /** + * Checks if the provided mtm belongs to supported email mtm. + * + * @since S60 v3.2 + * @param aMtm, MTM type to be tested. + * @param aAllowExtended, includes additional protocols. + * @return + */ + TBool IsMailMtm( + const TUid& aMtm, + const TBool& aAllowExtended = EFalse ) const; + + /** + * Checks if the provided id/entry is mailbox. + * + * @since S60 v3.2 + * @param aMailboxId, Id to be tested. + * @param aMailbox, Entry to be tested. + * @return ETrue, if the entry belongs to mailbox. + * @return EFalse, in failures or if the entry doesn't belong to mailbox. + */ + TBool IsMailbox( + const TMsvId aMailboxId ) const; + + TBool IsMailbox( + const TMsvEntry& aMailbox ) const; + + /** + * Gets the entry of the id and and checks that it is mailbox entry. + * + * @since S60 v3.2 + * @param aMailboxId, Id of the mailbox. + * @param aType, Type of entry to be retrieved. + * @return Entry of the mailbox. + * @leave EEntryNotFound, if entry does not exist. + * @leave EEntryNotMailbox, if the entry does not belong to mailbox. + */ + TMsvEntry GetMailboxEntryL( + const TMsvId aMailboxId, + const TImumDaMboxRequestType& aType = EValueRequestCurrent ) const; + + /** + * Gets all the entries related to mailbox. + * + * @since S60 v3.2 + * @param aMailboxId, Id of the mailbox. + * @return Mtm of the receiving entry. + */ + const TUid& GetMailboxEntriesL( + const TMsvId aMailboxId, + RMsvEntryArray& aEntries, + const TBool aResetArray = ETrue ) const; + + /** + * Checks, if the mailbox of specific id is functional. + * + * @since S60 v3.2 + * @param aMailboxId, Id of the mailbox to be checkd + * @return ETrue, when mailbox is functional. + * @return EFalse, when mailbox is faulty. + */ + virtual TBool IsMailboxHealthy( const TMsvId aMailboxId ) const; + + /** + * Returns an array of availble mailboxes in the system. + * *** NOTE: Client is responsible to clean the array after usage! *** + * + * @since S60 v3.2 + * @param aTypes, Type of the mailboxes + * @return Array of id's of required mailboxes. + */ + RMailboxIdArray GetMailboxesL( + const TInt64 aFlags = + MImumInHealthServices::EFlagGetHealthy ) const; + + private: + + //Reference to internal Api + CImumInternalApi &iMailboxApi; + //not owned : shortcut to utilities + MImumInMailboxUtilities *iUtils; + }; + +#endif /* C_IMUMDAMAIBOXUTILITIESIMPL_H */