diff -r f742655b05bf -r d38647835c2e convergedconnectionhandler/cchserver/inc/cchserviceinfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/convergedconnectionhandler/cchserver/inc/cchserviceinfo.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,366 @@ +/* +* Copyright (c) 2007 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: CCCHServiceInfo declaration +* +*/ + + +#ifndef C_CCHSERVICEINFO_H +#define C_CCHSERVICEINFO_H + +// INCLUDES +#include +#include +#include + +// CONSTANTS +// None + +// MACROS +// None + +// FORWARD DECLARATIONS +class CCCHSubserviceInfo; +class CCCHServerBase; +class MCCHServiceNotifier; + +// DATA TYPES +typedef RPointerArray RSubserviceArray; + +// FUNCTION PROTOTYPES +// None + +// CLASS DECLARATION + +/** + * CCCHServiceInfo declaration + * Contains Service information + * @lib cchserver.exe + * @since S60 3.2 + */ +NONSHARABLE_CLASS( CCCHServiceInfo ) : public CBase + { + +public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CCCHServiceInfo* NewL( CCCHServerBase& aServer ); + + /** + * Two-phased constructor. + */ + static CCCHServiceInfo* NewLC( CCCHServerBase& aServer ); + + /** + * Destructor. + */ + virtual ~CCCHServiceInfo(); + +public: // New functions + + /** + * ServiceId getter + * @since S60 3.2 + * @return TUint Service's Id + */ + TUint32 GetServiceId() const; + + /** + * ServiceId setter + * @since S60 3.2 + * @param aServiceId Service's Id + */ + void SetServiceId( TUint32 aServiceId ); + + /** + * Name getter + * @since S60 3.2 + * @return const TDesC Service's name + */ + const TDesC GetName() const; + + /** + * Name setter + * @since S60 3.2 + * @param aName Service's name + */ + void SetName( const TDesC& aName ); + + /** + * Enable given service + * @since S60 3.2 + * @param aServiceType Service's Subservice type + * @param aConnectivityCheck Is value is True Connectivity Plug-in will + * make test call to check is the connection truly working. + * @param aObserver Pointer to observer. + */ + void EnableL( const TCCHSubserviceType aServiceType, + const TBool aConnectivityCheck, + MCCHServiceNotifier* aNotifier ); + + /** + * Disable given service + * @since S60 3.2 + * @param aServiceType Service's Subservice type + */ + void DisableL( const TCCHSubserviceType aServiceType ); + + /** + * Connection information setter + * @since S60 3.2 + * @param aServiceConnInfo Service's new connection information + */ + void SetConnectionInfoL( const TServiceConnectionInfo aServiceConnInfo ); + + /** + * Connection information getter + * @since S60 3.2 + * @param aServiceConnInfo On completion contains Service's + * connection(SNAP/IAP) information + */ + void GetConnectionInfoL( TServiceConnectionInfo& aServiceConnInfo ) const; + + /** + * Is service enabled + * @since S60 3.2 + * @return ETrue if service is enabled. + */ + TBool IsEnabled() const; + + /** + * Add new Subservice to Service + * @since S60 3.2 + * @param aSubservice Subservice information + */ + void AddSubserviceL( TCCHSubservice& aSubservice ); + + /** + * Subservice getter + * @since S60 3.2 + * @param aType Subservice's type + */ + CCCHSubserviceInfo& GetSubserviceL( TCCHSubserviceType aType ) const; + + /** + * Update service and subservice's states + * @since S60 3.2 + * @param aReadServiceTable If ETrue class reads/updates all Services + * directly from Service Provider Settings + */ + void UpdateL( TBool aReadServiceTable = EFalse ); + + /** + * Update service and subservice's states + * @since S60 3.2 + * @param aType Subservice's type + * @param aState Service's new state + */ + void SetStateL( const TCCHSubserviceType aType, + const TInt aState ); + + /** + * Update service and subservice's states + * @since S60 3.2 + * @param aPluginUid plugin uid wich services are updated + * @param aState Service's new state + */ + void SetStateL( const TUid& aPluginUid, + const TCCHSubserviceState& aState ); + /** + * Update service and subservice's error + * @since S60 3.2 + * @param aType Subservice's type + * @param aError Service's error + */ + void SetErrorL( const TCCHSubserviceType aType, + const TInt aError ); + /** + * Update service and subservice's states + * @since S60 3.2 + * @return TInt Count of subservices + */ + TInt SubserviceCount() const; + + /** + * Get Plug-in's Uid + * @since S60 3.2 + * @param aSubserviceIndex Index of subservice + * @return TUid Subservice's Uid + */ + TUid GetUidL( TInt aSubserviceIndex ) const; + + /** + * Fill Service's information + * @since S60 3.2 + * @param aService On completion contains service and subservice information + */ + void FillServiceInfo( TCCHService& aService ); + + /** + * Get Service's status + * @since S60 3.2 + * @param aType Subservice's type + * @param aState in return, state of subservice + * @return error code, KErrNotFound if subservice is not existing + */ + TInt GetStatus( TCCHSubserviceType aType, TCCHSubserviceState& aState ) const; + + + /** + * Get Service's error + * @since S60 3.2 + * @param aType Subservice's type + * @return TInt Current error of subservice + */ + TInt GetError( TCCHSubserviceType aType ) const; + + /** + * Reserve a service + * @since S60 3.2 + * @param aType Subservice's type + */ + void ReserveServiceL( TCCHSubserviceType aType ); + + /** + * Free the service reservation + * @since S60 3.2 + * @param aType Subservice's type + */ + void FreeServiceL( TCCHSubserviceType aType ); + + /** + * Return the service reference count + * @since S60 3.2 + * @param aType Subservice's type + * @return Reference count + */ + TBool IsReservedL( TCCHSubserviceType aType ) const; + + /** + * Get Service's protocol information + * @since S60 3.2 + * @param aBuffer On completion contains selected service's protocol + * information. + * @param aType Subservice's type + */ + void GetServiceInfoL( TDes& aBuffer, TCCHSubserviceType aType ) const; + + /** + * Subservice exist + * @since S60 3.2 + * @param aType Subservice's type + * @return ETrue if Subservice exits or type is not specified. + */ + TBool SubserviceExist( TCCHSubserviceType aType ) const; + + /** + * Find subservice by type + * @since S60 3.2 + * @param aType Subservice's type + * @return TInt position within iSubservices array or KErrNotFound + */ + TInt FindSubservice( TCCHSubserviceType aType ) const; + + /** + * Is any Subservice's startup-flag set to true + * @since S60 3.2 + * @return ETrue if any startup-flag is set to true + */ + TBool StartupFlagSet() const; + + /** + * Is Subservice's startup-flag set to true + * @since S60 3.2 + * @param aSubserviceIndex Subservice's index + * @return ETrue if startup-flag is set to true + */ + TBool StartupFlagSet( TInt aSubserviceIndex ) const; + + /** + * Subservice's enable at startup info setter + * @since S60 3.2 + * @param aType Subservice's type + * @param aLoadAtStartUp Enable Subservice at the startup + */ + TInt SetStartupFlag( TCCHSubserviceType aType, TBool aLoadAtStartUp ) const; + + /** + * Gets Subservice's type + * @since S60 3.2 + * @param aSubserviceIndex Subservice's index + * @return TCCHSubserviceType type of Subservice + */ + TCCHSubserviceType GetSubserviceType( TInt aSubserviceIndex ) const; + + /** + * Gets services state + * @since S60 3.2 + * @return TCCHSubserviceStates Status of service + */ + TCCHSubserviceState GetState() const; + +private: + + /** + * Exception errors cases + * @since S60 3.2 + */ + void HandleErrorExceptions(); + +private: + + /** + * C++ default constructor. + */ + CCCHServiceInfo( CCCHServerBase& aServer ); + +private: // data + + /** + * Handle to server + */ + CCCHServerBase& iServer; + + /** + * Service Id + */ + TUint32 iServiceId; + + /** + * Service provider name + */ + TBuf iServiceName; + + /** + * Subservice objects array + */ + RSubserviceArray iSubservices; + + /** + * Is Servie enabled + */ + TBool iIsEnabled; + + /** + * Reserved, obsolote. When adding next new parameter (TInt) + * rename Reserved to that, implementation is ready then. + */ + TBool iReserved; + }; + +#endif // C_CCHSERVICEINFO_H + +// End of file