diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstengine/inc/mvimpstengineimsubservice.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstengine/inc/mvimpstengineimsubservice.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,127 @@ +/* +* Copyright (c) 2008 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: M-Class that capsulates IM sub service API's +* +*/ + + +#ifndef MVIMPSTENGINEIMSUBSERVICE_H +#define MVIMPSTENGINEIMSUBSERVICE_H + +// INCLUDES +#include +#include "tvimpstenums.h" +#include "mvimpstenginesubservice.h" +#include + +//FORWARD DECLARATION +class MVIMPSTEngineIMSubServiceEventObserver; + +//CLASS DECLARATION +/** + * + * This class list the M-Class for IM subservices + * + * @lib vimpstengine.lib + * @since S60 5.0 + */ +//Class declaration +class MVIMPSTEngineIMSubService: public MVIMPSTEngineSubService + { + + public: + + /** + * Casts MVIMPSTEngineIMSubService to this interface. + * + * @precond aSubService.Type() == TVIMPSTEnums::EIM + * Panic(EPanicTypeMismatch) + * is raised if the precondition does not hold. + * @param aSubService Base Class . + * @return Casted inteface for the IM SubService + */ + IMPORT_C static MVIMPSTEngineIMSubService& Cast( + MVIMPSTEngineSubService& aSubService); + + + /** + * Casts constMVIMPSTEngineIMSubService to this interface. + * + * @precond aSubService.Type() == TVIMPSTEnums::EIM + * Panic(EPanicTypeMismatch) + * is raised if the precondition does not hold. + * @param aSubService Base Class . + * @return Casted inteface for the IM SubService + */ + IMPORT_C static const MVIMPSTEngineIMSubService& Cast( + const MVIMPSTEngineSubService& aSubService); + + + /** + * RegisterChatObserver + * The observers that have implemented MVIMPSTEngineIMSubServiceEventObserver can use this API + * to register themselves to receive IM SubService (Conversation) related events + * @param aObserver - Object that implements the observer class MVIMPSTEngineIMSubServiceEventObserver that + * needs to be added. + */ + virtual void RegisterChatObserver(MVIMPSTEngineIMSubServiceEventObserver* aObserver) = 0; + + /** + * UnRegisterChatObserver + * The observers that have implemented MVIMPSTEngineIMSubServiceEventObserver can use this API + * to unregister themselves from IM SubService (Conversation) related events + * @param aObserver - Object that implements the observer class MVIMPSTEngineIMSubServiceEventObserver that + * needs to be removed. + */ + virtual void UnRegisterChatObserver(MVIMPSTEngineIMSubServiceEventObserver* aObserver) = 0; + + /** + * GetUnreadCountL + * API used to retreive the Unread Msg Count for a Buddy + * @param aBuddyId, id of the conversation party. + */ + virtual TInt GetUnreadCountL(const TDesC& aBuddyId) = 0; + + + /** + * check if already conversation opened + * @param aBuddyId, the selected user id with whom conversation is started + * @return TBool ETrue if already exist else EFlase. + */ + virtual TBool IsConversationExistL(const TDesC& aBuddyId) const = 0; + + /** + * Closes conversation with the selected user + * @param aBuddyId, id of the conversation party. + */ + virtual void CloseConversationL( const TDesC& aBuddyId ) = 0; + + /** + * get all conversation with the selected service id + * @param aBuddyId, id of the conversation party. + */ + + virtual RArray GetOpenChatListL() = 0 ; + + /** + * Destructor + */ + virtual ~MVIMPSTEngineIMSubService() + {} + + }; + +#endif //MVIMPSTENGINEIMSUBSERVICE_H + +