diff -r 000000000000 -r 5e5d6b214f4f uiservicetab/vimpstengine/inc/cvimpstengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstengine/inc/cvimpstengine.h Tue Feb 02 10:12:18 2010 +0200 @@ -0,0 +1,420 @@ +/* +* 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: Class that capsulates single service data members +* +*/ + +#ifndef __CVIMPSTENGINE_H +#define __CVIMPSTENGINE_H + +// INCLUDES +#include + +#include "tvimpstenums.h" + +//base +#include "mvimpstengine.h" +#include "mvimpststoragecontactsobserver.h" +#include "mvimpstenginecchuieventobserver.h" +#include "mvimpstengineserviceconnectioneventobserver.h" +// FORWARD DECLARATIONS +class CVIMPSTEngineServiceTableFetcher; +class MVIMPSTServiceListManager; +class MVIMPSTStorageServiceView; +class MVIMPSTEngineSubService; +class CVIMPSTEngineCchHandler; +class MVIMPSTEngineSearchExtentionEventObserver; +class CVIMPSTEngineSessionCntxtObserver; +class MVIMPSTStorageContactsObserver; +class MVIMPSTEngineCchUiEventObserver; + +//CLASS DECLARATION +/** + * engine class for a Single Service + * @lib vimpstengine.dll + * @since 5.0 + */ + + +NONSHARABLE_CLASS( CVIMPSTEngine ) : public CBase, + public MVIMPSTEngine, + public MVIMPSTEngineServiceConnectionEventObserver, + public MVIMPSTStorageContactsObserver, + public MVIMPSTEngineCchUiEventObserver + + + + { + //for test cases. + friend class T_VimpstEngine; + + public: // Two-phased constructors and destructor + + /** + * NewLC two phase constructor. + * @param aServiceId - Service Id + * @param aTableFetcher - ServiceTable Fetcher + * return @ptr a new instance of this class + */ + static CVIMPSTEngine* NewLC( + TUint32 aServiceId, + CVIMPSTEngineServiceTableFetcher& aTableFetcher ); + + + /** + * NewL two phase constructor. + * @param aServiceId - Service Id + * @param aTableFetcher - ServiceTable Fetcher + * return @ptr a new instance of this class + */ + static CVIMPSTEngine* NewL( + TUint32 aServiceId, + CVIMPSTEngineServiceTableFetcher& aTableFetcher ); + + /** + * C++ default destructor + */ + virtual ~CVIMPSTEngine(); + + + public: //From MVIMPSTEngine + + + /** + * See MVIMPSTEngine + * + */ + TUint32 ServiceId() const ; + + + /** + * See MVIMPSTEngine + * + */ + TVIMPSTEnums::TVIMPSTRegistrationState ServiceState() const ; + + + /** + * See MVIMPSTEngine + * + */ + TInt GetBrandInfoL(TLanguage& aBrandLanguage, + TInt& aBrandVersion, TDes8& aBrandId) const ; + + + + /** + * See MVIMPSTEngine + * + */ + TBool IsSubServiceSupportedL(TVIMPSTEnums::SubServiceType aType) const ; + + + /** + * See MVIMPSTEngine + * + */ + TBool IsSubServiceEnabled(TVIMPSTEnums::SubServiceType aType) const ; + + /** + * See MVIMPSTEngine + * + */ + void ContactStoreIdL( + TDes& aContactStoreId ) const ; + + /** + * See MVIMPSTEngine + * + */ + const TDesC& ServiceName() const ; + + + /** + * See MVIMPSTEngine + * + */ + void RegisterServiceSessionObserverL + (MVIMPSTEngineServiceStateEventObserver* aObserver) ; + + /** + * See MVIMPSTEngine + * + */ + void UnRegisterServiceSessionObserver + (MVIMPSTEngineServiceStateEventObserver* aObserver) ; + + + /** + * See MVIMPSTEngine + * + */ + void IntializeStorageL() ; + + /** + * See MVIMPSTEngine + * + */ + void UnIntializeStorage() ; + + + /** + * See MVIMPSTEngine + * + */ + MVIMPSTEngineSubService* SubService(TVIMPSTEnums::SubServiceType aType) const; + + + /** + * See MVIMPSTEngine + * + */ + MVIMPSTEngineExtentionFeatures* ExtentionFeatures(TVIMPSTEnums::ExtentionType aType) const ; + + + + /** + * See MVIMPSTEngine + * + */ + HBufC* GetOwnUserIdFromCChOrStorageL() const ; + + + /** + * See MVIMPSTEngine + * + */ + TInt Login(); + + /** + * See MVIMPSTEngine + * + */ + void LogoutL(); + + /** + * See MVIMPSTEngine + * + */ + void DefaultDomainNameL( TDes& aDefaultDomainName ) const; + + /** + * See MVIMPSTEngine + * + */ + TInt ChangeConnectionL(); + /** + * See MVIMPSTEngine + * + * @return True if password is present in the settings else returns false + * + */ + TBool IsPasswordAvailableL(); + + /** + * See MVIMPSTEngine + * + */ + TBool IsBlockSupportedL(); + + /** + * See MVIMPSTEngine + * + */ + void DeleteDataBaseL(); + + /** + * See MVIMPSTEngine + * + */ + MVIMPSTEnginePresenceSubService* GetPreseceSubService(); + + /** + * See MVIMPSTEngine + * + */ + void FetchBlockedListL(); + + /** + * See MVIMPSTEngine + * + */ + void RegisterBlockedListObserver( + MVIMPSTEngineBlockedListFetchEventObserver* aOb); + + + /** + * See MVIMPSTEngine + * + */ + void SetOwnUserIdIfChangedL(const TDesC& aUserId ) ; + + + /** + * See MVIMPSTEngine + * + */ + void RetriveContextIfCChEnabledL() ; + + private: // From MVIMPSTEngineServiceConnectionEventObserver + /** + * See MVIMPSTEngineServiceConnectionEventObserver + */ + void HandleServceConnectionEventL(); + + private: + /** + * Returns a SubService is Supported or not + * Components intertested in knowing whether a SubService is Supported or not can use this API + * @param aType - Type of the SubService TVIMPSTEnums::SubServiceType - Defined in tvimpstenums.h + * @return TBool, ETrue if the SubService is Supported in this Service, else returns EFalse + */ + TBool IsSubServiceSupportedInternal(TVIMPSTEnums::SubServiceType aType) const ; + + public: + /** + * Called when all the contacts are fetched from the virtual store. + * + * @since s60 5.0 + */ + void HandleContactFetchedL(); + + public: // From MVIMPSTStorageContactsObserver + + + /** + * HandleChange: To handle the Chnage event from the MCAStoredContactsObserver + * @see MCAStoredContactsObserver + * @param aList: reference to the list at which a change has occured + * @param aContact: reference to the contact at which a change has occured + * @param aEventType: TVIMPSTEnums::TCAObserverEventType,type of change event that has occured + * @param aUserIdChanged, ETrue if userid has changed, else EFalse. + * @return void + */ + void HandleStorageChangeL( TVIMPSTEnums::TVIMPSTStorgaeEventType aEventType, + MVIMPSTStorageContactList* aList, + MVIMPSTStorageContact* aContact, + TInt aContactIndex ); + + + //From MVIMPSTEngineCchUiEventObserver + /** + * Handles the change connection event from CCHUI + *@ return void + */ + void HandleChangeConnectionEventL(); + + + + private: + + /** + * symbian second phase constructor + * @param aServiceId service id + */ + void ConstructL( TUint32 aServiceId ); + + /** + * C++ constructor. + */ + CVIMPSTEngine( TUint32 aServiceId, + CVIMPSTEngineServiceTableFetcher& aTableFetcher ); + + + /** + * Parses and finds the Cumulative Service State of all Subservices + * @return TVIMPSTRegistrationState + */ + TVIMPSTEnums::TVIMPSTRegistrationState ParseGetServiceState(); + + /** + * Adds Extention Feature + * @param aFeature - Feature to be added + */ + void AddExtentionFeaturesL(MVIMPSTEngineExtentionFeatures* aFeature) ; + + + /** + * Removes Extention Feature + * @param aFeature - Feature to be Removed + */ + void RemoveExtentionFeatures(TVIMPSTEnums::ExtentionType aType) ; + + + /** + * Creates a list of known extention features + * + */ + void CreateExtentionFeaturesL(); + + /** + * Sets the supported extension feature + */ + void SetExtentionFeaturesSupportedL(); + + /** + * ReSets the Support for all extension feature + */ + void ReSetExtentionFeaturesSupportedL(); + + + + + private : + + //Service Id + TUint32 iServiceId; + + //Settings Id + TUint32 iSettingsId; + + //doesnt own reference to servicetable entry + CVIMPSTEngineServiceTableFetcher& iTableFetcher; + + //owns - service name + HBufC* iServiceName; + + //Owns, ximpfw session context observer. + CVIMPSTEngineSessionCntxtObserver* iSessionCntxtObserver ; + + //does not own reference to the contact list interface + MVIMPSTStorageServiceView* iContactInterface; + + //owns pointer to subservice + RPointerArray iSubService; + + // Own, cch handler for this service + CVIMPSTEngineCchHandler* iCchHandler; + + //owns pointer to subservice + RPointerArray iExtentionFeatures; + + // Doesnt Own, array of observers. + RPointerArray iObserverArray; + + //Owns Pointer to the ServiceState Listener + + //Cumulative Service State of all SubServices Belonging to this Service + TVIMPSTEnums::TVIMPSTRegistrationState iState; + + //block list observer to notify the blocked list has been fetched. + MVIMPSTEngineBlockedListFetchEventObserver* iBlockListObs; + + }; + +#endif //__CVIMPSTENGINE_H + +// End of File + +