imstutils/imconversationview/imcvuiengine/inc/mimcvenginefactory.h
branchRCL_3
changeset 23 9a48e301e94b
parent 0 5e5d6b214f4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imstutils/imconversationview/imcvuiengine/inc/mimcvenginefactory.h	Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2008-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:  service engine factory class interface
+*
+*/
+
+#ifndef MIMCVENGINEFACTORY_H
+#define MIMCVENGINEFACTORY_H
+#include <e32def.h>
+
+//FORWARD DECLARATION
+class CIMCVEngine;
+class MIMCVEngineConnectionHandler;
+class MIMCVEngineOpenChatsObserver;
+class MIMCVEngineServiceChangeObserver;
+//CLASS  DECLARATION
+/**
+ *  
+ *  This class list the M-Class for Engine factory
+ *
+ *  @lib vimpstengine.lib
+ *  @since S60 5.0
+ */
+class MIMCVEngineFactory
+    {
+
+public:	
+
+    /**
+     * return the engine instance for aServiceId.
+     */
+    virtual CIMCVEngine& GetServiceEngineL( TInt aServiceId ) = 0 ;
+
+    /**
+     * find and release the engine instance for aServiceId.
+     */
+    virtual void ReleaseServiceEngine( TInt aServiceId ) = 0 ;
+
+
+    /**
+     * GetDisplayNameL: returns the Identification       
+     * @param aIndex - Index of the item for which Identification 
+     *                 is required
+     * @return TPtrC - Identification
+     */
+    virtual TPtrC GetDisplayNameL(TInt aIndex) const = 0;
+
+
+    /**
+     * GetTargetIdL: returns the Conversation Party ID      
+     * @param aIndex - Index of the item 
+     * @return Conversation Party ID
+     */
+    virtual const TDesC& GetTargetIdL(TInt aIndex) const = 0;
+
+
+    /**
+     * Count: Returns the number of items              
+     * @return TInt - Total number of openchats item
+     */
+    virtual TInt Count() const = 0;
+
+
+    /**
+     * SetActiveItemL: Sets the item as the current active one       
+     * @param aIndex - Index of the item
+     * @return void
+     */      
+    virtual void SetActiveItemL( const TInt aIndex ) = 0;
+
+
+    /**
+     * GetActiveItem: Gets the current active conversation        
+     * @return Active Conversation Party Id
+     */
+    virtual const TDesC& GetActiveItemL() const = 0;
+
+    /**
+     * Returns the pending messages status of the contact item 
+     * @param aIndex - Index of the item
+     * @return bool: true if the conversation item has pending messages
+     * else return false
+     */      
+    virtual TBool IsMsgPendingL( const TInt aIndex ) const = 0;
+
+    /**
+     * Find the index of the item in the Conversation List 
+     * @param aItem - Conversation Party Id      
+     * @return aIndex - Index of the item        
+     */
+    virtual TInt FindIndexL(const TDesC& aItem) = 0;
+
+    virtual void ResetL() = 0;
+    
+    /**
+     * @see MVIMPSTEngineFactory
+     */
+    virtual void RegisterOpenChatObserver(MIMCVEngineOpenChatsObserver* aChatObserver) = 0 ;
+    /**
+     * @see MVIMPSTEngineFactory
+     */
+    virtual void UnRegisterOpenChatObserver() = 0 ;
+    
+       
+    virtual TInt GetActiveServiceId() = 0 ;
+	/*
+	* return all availabe service engines
+	*/
+    virtual RPointerArray<CIMCVEngine>&  GetServiceEngines() = 0;
+    /**
+     * @see MVIMPSTEngineFactory
+     */
+    virtual void RegisterServiceObserver(MIMCVEngineServiceChangeObserver* aServiceObserver) = 0 ;
+    /**
+     * @see MVIMPSTEngineFactory
+     */
+    virtual void UnRegisterServiceObserver() = 0 ;
+    
+    /**
+     * ~CVIMPSTEngineFactory 
+     * dont call delete 
+     */
+    virtual ~MIMCVEngineFactory() 
+        {
+
+        }
+
+    };
+
+#endif //MIMCVENGINEFACTORY_H