emailservices/emailframework/commonlib/inc/CFSMailBoxBase.h
changeset 0 8466d47a6819
child 4 e7aa27f58ae1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailframework/commonlib/inc/CFSMailBoxBase.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2007-2009 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:  common base mailbox object
+*
+*/
+
+
+#ifndef __CFSMAILBOXBASE_H
+#define __CFSMAILBOXBASE_H
+
+#include "cfsmailfolder.h"
+#include "mmrinfoprocessor.h"
+#include "cemailextensionbase.h"
+
+/**
+ *  base class for handling mailbox data
+ *
+ *  @lib FSFWCommonLib
+
+ */
+
+class CFSMailBoxBase : public CExtendableEmail
+{
+ public:
+  
+    /**
+     * Two-phased constructor.
+     *
+     * @param aMailBoxId mailbox id in plugin containing mailbox
+     */
+     IMPORT_C static CFSMailBoxBase* NewL(const TFSMailMsgId aMailBoxId);
+  	
+    /**
+     * Two-phased constructor.
+     *
+     * @param aMailBoxId mailbox id in plugin containing mailbox
+     */
+     IMPORT_C static CFSMailBoxBase* NewLC(const TFSMailMsgId aMailBoxId);
+
+    /**
+     * Destructor.
+     */  
+     IMPORT_C virtual ~CFSMailBoxBase();
+  	
+    /**
+     * mailbox id accessor
+     *
+     * @return mailbox id
+     */
+     IMPORT_C TFSMailMsgId GetId( ) const;
+
+    /**
+     * mailbox name accessor
+     *
+     * @return mailbox name
+     */
+     IMPORT_C TDesC& GetName( ) const;
+
+    /**
+     * mailbox name mutator
+     *
+     * @param aMailBoxName mailbox name
+     */
+     IMPORT_C void SetName( const TDesC& aMailBoxName );
+	 		
+    /**
+     * retuns mailbox status accessor
+     *
+     * @return mailbox status
+     */
+     IMPORT_C TFSMailBoxStatus GetStatus( ) const;
+
+    /**
+     * mailbox status mutator
+     *
+     * @param aStatus mailbox status
+     */
+     //<cmail>
+     //function definition is empty, we need to remove it if not needed
+     //</cmail>
+     IMPORT_C void SetStatus( const TFSMailBoxStatus aStatus );
+
+	/*
+	 * Function to set context of Remote Contact Lookup service for
+	 * this mailbox for protocol plugins.
+	 *
+	 * @param aProtocolUid specifies Ecom implementation UID of
+	 *	      "Remote Contact Lookup Protocol Adaptation API" to use.
+	 * @param aMailBoxId mailbox id in plugin
+	 */
+     IMPORT_C void SetRCLInfo(const TUid aProtocolUid, const TUint aMailBoxId);
+ 
+	/*
+     * Function to retrieve Remote Contact Lookup service context for
+     * this mailbox.
+     *
+     * @param aProtocolUid specifies Ecom implementation UID of
+     *        "Remote Contact Lookup Protocol Adaptation API" to use.
+     * @param aMailBoxId mailbox id in plugin
+     */
+     IMPORT_C void GetRCLInfo(TUid& aProtocolUid, TUint& aAccountUid);
+
+    /**
+     * returns settings view id for mailbox
+     *
+     * @return settings view id
+     */
+     IMPORT_C const TUid GetSettingsUid();
+
+    /**
+     * sets settings view id for mailbox
+     *
+     * @param aUid settings view id
+     */
+     IMPORT_C void SetSettingsUid(const TUid aUid);
+
+	/**
+	 * Returns a meeting request info processor, which is used for replying
+	 * to meeting request received as MMRInfoObjet
+	 *
+	 * @return meeting info Processor, NULL if not supported by plugin
+	 *         ownership not transferred
+	 */ 
+     IMPORT_C MMRInfoProcessor& MRInfoProcessorL();
+
+    /**
+     * method to cheack if MRInfoProcessor is set
+     *
+     * @return
+     */
+	 IMPORT_C TBool IsMRInfoProcessorSet();
+
+	/**
+	 * Meeting request info processor mutator
+	 *
+	 * @param aMrInfoProcessor meeting info Processor, ownership transferred
+	 */ 
+	 IMPORT_C void SetMRInfoProcessorL(MMRInfoProcessor* aMrInfoProcessor);
+
+    /**
+     * mailbox own address accessor
+     *
+     * @return mailbox own address
+     */
+     IMPORT_C CFSMailAddress& OwnMailAddress( );
+
+    /**
+     * mailbox own address mutator
+     *
+     * @param aOwnMailAddress mailbox own address
+     */
+     IMPORT_C void SetOwnMailAddressL( CFSMailAddress* aOwnMailAddress);
+	 
+protected:
+
+    /**
+     * C++ default constructor.
+     */
+     CFSMailBoxBase();
+
+     /**
+      * branding id accessor
+      */
+      TDesC& BrandingId();
+
+      /**
+       * mailbox id mutator
+       */
+       void SetMailBoxId( TFSMailMsgId aMailBoxId );
+
+protected: // data
+
+protected: // <cmail>
+
+  	/**
+     * Two-phased constructor
+     */
+  	 void ConstructL( const TFSMailMsgId aMailBoxId );
+  	 
+private: // data
+ 	
+	/**
+     * mailbox name
+     */
+	 HBufC*	              iMailBoxName;
+
+	 
+	/**
+     * remote contact lookup info
+     */
+     TUid                 iProtocolUid;
+     TUint 	              iAccountUid;
+	
+	/**
+     * settings uid
+     */
+     TUid                 iSettingsUid;
+
+	/**
+     * Meeting request info
+     */
+     MMRInfoProcessor*    iMRInfoProcessor;
+
+	/**
+     * mailbox own address
+     */
+	 CFSMailAddress*      iOwnMailAddress;
+
+	 /**
+	  * branding id
+	  */
+	 HBufC*                iBrId;
+
+protected: // <cmail>
+
+	 /**
+	  * mailbox id
+	  */
+	 TFSMailMsgId         iMailBoxId;
+};
+
+#endif 	// __CFSMAILBOXBASE_H