diff -r 3104fc151679 -r 9a48e301e94b servicewidget/servicewidgetdatapublisher/inc/cservicewidgetcchhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/servicewidget/servicewidgetdatapublisher/inc/cservicewidgetcchhandler.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,183 @@ +/* +* 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 for cch service handling + * + * +*/ + + +#ifndef CSERVICEWIDGETCCHHANDLER_H +#define CSERVICEWIDGETCCHHANDLER_H + +#include +#include +#include +#include +#include "servicewidgetcpglobals.h" +#include "servicewidgetenums.hrh" + +// farword declarations +class MServiceWidgetServiceStateObserver; +/** + * @class cch handler class implementation + * @since 5.0 + */ +struct TSubServiceState + { + TCCHSubserviceType iSubServiceType; /* subservice type(IM/VOIP/PRESENCE */ + TSWSTRegistrationState iSubServiceState; /* observer */ + }; + +class CServiceWidgetCchHandler : public CBase, + public MCchServiceStatusObserver + { + + public: + + /** + * Two-phased constructor. + * @param aServiceId, service id + * @param aContentPrioritizer, service state observer + * @return the instance of this class + */ + static CServiceWidgetCchHandler* NewL( TUint32 aServiceId, + MServiceWidgetServiceStateObserver& aContentPrioritizer ); + + /** + * Two-phased constructor. + * @param aServiceId, service id + * @param aContentPrioritizer, service state observer + * @return the instance of this class + */ + static CServiceWidgetCchHandler* NewLC( TUint32 aServiceId, + MServiceWidgetServiceStateObserver& aContentPrioritizer ); + + /** + * Standard C++ destructor + */ + ~CServiceWidgetCchHandler(); + + public: // new methods + + /** + * @return own user id + */ + const TDesC& OwnUserIdL(); + + /** + * @return own user id + */ + TInt XimpAdaptationUidL(); + + /** + * @param aSubServiceType, a sub service type + * @return ETrue if service supported + */ + TBool IsSubServiceSupported(TCCHSubserviceType aSubServiceType ); + + + /** + * read the supported sub service of selected service + */ + void ReadSupportedSubServices(); + + + /** + * mapped the cch state to local state + * @param aState ,cch state + * @return mapped state + */ + TSWSTRegistrationState ParseGetServiceState(); + + /** + * @return tabview id if service installed else NULL + */ + TInt GetServiceViewIdL( TInt& aTabUid ); + + /** + * @returns true if service logged in successfully else KErrNotFound + */ + TInt EnableServiceL( ); + + public: // method from MCchServiceObserver + + /** + * Signaled when service status or error changes + * + * @param aServiceId Id of the service + * @param aType Service type + * @param aServiceStatus Service status + */ + void ServiceStatusChanged(TInt aServiceId, + const TCCHSubserviceType aType, + const TCchServiceStatus& aServiceStatus ); + + private: // Implementation + + /** + * Standard C++ constructor + * @param aServiceId, service id + * @param aContentPrioritizer, service state observer + */ + CServiceWidgetCchHandler(TUint32 aServiceId, + MServiceWidgetServiceStateObserver& aContentPrioritizer ); + + /** + * Performs the 2nd phase of construction. + */ + void ConstructL(); + + /** + * read the own status from the xmmp + * @return the own status + */ + HBufC* GetConParametersL( TCchConnectionParameter aConnParam ); + + /** + * mapped the cch state to local state + * @param aState ,cch state + * @return mapped state + */ + TSWSTRegistrationState GetLocalServiceState(TCCHSubserviceState aState ); + + /** + * @return service state + */ + TSWSTRegistrationState GetServiceState( TCCHSubserviceType aServiceType ); + + /** + * check from cch service + * @param aSubServiceType ,a sub service type + * @return ETrue if supported + */ + TBool IsServiceSupported(TCCHSubserviceType aSubServiceType ); + + private: // Data + //owns : serviceid + TInt iServiceId; + // not owns : reference to state observer + MServiceWidgetServiceStateObserver& iStateObserver; + //owns : reference to cch + CCch* iCchClient; + //owns : own user id + HBufC* iOwnData; + // owns : service name + HBufC* iServiceName; + // owns : xmpp parameters + TSWSTRegistrationState iServiceState; + // does not own array of observers. + RArray iSupportedSubServices; + }; + +#endif /*CSERVICEWIDGETCCHHANDLER_H*/