diff -r 3104fc151679 -r 9a48e301e94b imstutils/imconversationview/imcvuiengine/inc/mimcvenginefactory.h --- /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 + +//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& 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