imservices/ossprotocoladaptation/inc/cosscontactmanager.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:54:49 +0200
changeset 0 e6b17d312c8b
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2007-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:  contact manager
*
*/

#ifndef __COSSCONTACTMANAGER_H__
#define __COSSCONTACTMANAGER_H__

#include <e32base.h>


class MOSSProtocolConnectionManager;
/**
 * COSSContactManager
 *
 */
NONSHARABLE_CLASS ( COSSContactManager ) : public CBase       
    {

    public:

        static COSSContactManager* NewL(MOSSProtocolConnectionManager& aConnMan);
        ~COSSContactManager();


    private:

        COSSContactManager(MOSSProtocolConnectionManager& aConnMan);
        void ConstructL();
        
    public:
        /**
         *  get iFetchContactsFirstTime         
         */
        TBool IsFetchContactsFirstTime();
        /**
         *  iFetchInvitationsFirstTime         
         */
        TBool IsFetchInvitationsForFirstTime();
        /**
         *  Set iFetchContactsFirstTime 
         *  @param value to be set
         */
        void SetFetchContactsFirstTime(TBool aValue);
        /**
         *  Set iFetchInvitationsFirstTime
         *  @param value to be set
         */
        void SetFetchInvitationsForFirstTime(TBool aValue);
        /**
         *  Get reference to iContacts 
         *  @param iContacts
         */
        RPointerArray<HBufC>& GetContactsListL();

        /**
         *  Get reference to iInvitationList 
         *  @param return iInvitationList
         */
        RPointerArray<HBufC>& GetInvitationListL();
        /**
         *  give list of invitations to ximp fw and client side ui
         *  
         */
        void ReturnInvitationListL();
        /**
         *  give list of current member and remote pending contacts to ximp fw and client side ui
         *  
         */
        void ReturnContactsListL();
        /**
         *  remove a contact from the local copy of iContacts 
         *  @param aContactName to be removed
         */
        void RemoveContactFromLocalL(const TDesC& aContactName);
        /**
         *  add a contact to the local copy of iContacts 
         *  @param aContactName to be added
         */
        void AddContactToLocalL(const TDesC& aContactName);        
        /**
         *  remove a invitation from the local copy of iInvitationList 
         *  @param aContactName to be removed from the invitation list
         */
        void RemoveInvitationFromLocalL(const TDesC& aContactName);
        
    private:
        
        /**
         * Oss Protocol Plugin Contact Manager
         * Not own.  *** Write "Not own" if some other class owns this object.
         */
        MOSSProtocolConnectionManager& iConnMan;
        
        /**
         * stores if fetching contacts for the first time value
         * Own
         */
        TBool iFetchContactsFirstTime ;
        /**
         * stores if fetching invitations for the first time value
         * Own
         */
        TBool iFetchInvitationsFirstTime ;
        /**
         * current contacts. to maintain local copy of current contacts
         * own
         */
        RPointerArray<HBufC>   iContacts;

        /**
         * local copy of pending contacts or invitations
         * own
         */
        RPointerArray<HBufC>  iInvitationList;        
        
    };

#endif // __COSSCONTACTMANAGER_H__

// End of File