diff -r a36b1e19a461 -r 989d2f495d90 serviceproviders/sapi_sysinfo/sysinfoservice/inc/sysinfoservice.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/sapi_sysinfo/sysinfoservice/inc/sysinfoservice.h Fri Jul 03 15:51:24 2009 +0100 @@ -0,0 +1,291 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: CSysInfoService class +* +*/ + + +#ifndef __CSYSINFOSERVICE_H__ +#define __CSYSINFOSERVICE_H__ + +// INCLUDES +#include "sysinfo.h" +#include "sysrequest.h" + +// FORWORD CLASS DECLARATION +class CSysData; +class CDeviceInfo; + +/** +* @ref ISystemObserver +* Client Observer interface to handle response from Asynchronous system requests. +* +* @param aResponse +*/ + +class ISystemObserver + { + public: + /** + * HandleResponseL () + * Callback function to be implimented by client in order to handle asynchronous + * response. + * @param aEntity Entity + * + * @param aKey Key + * + * @param aOutput client owns output data. + * + * @param aTransID TransactionID associated with request. + * + * @param aType Asynchronous Response type. + * + * @param aError If any error occured in process of generating response. + * + */ + virtual void HandleResponseL(const TDesC& aEntity,const TDesC& aKey, + CSysData* aOutput, TInt32 aTransID, + TSysRequest::TRequestType aType, + TInt aError=KErrNone) = 0; + }; + + +/** +* @ref CSysInfoService is used to read and modify and system information +* +* @lib sysinfoservice +* @since S60 3.2 +* @version $Revision: 1.0 $ +*/ + +NONSHARABLE_CLASS(CSysInfoService) : public CBase + { + public: // Constructors and destructor + + /** + * NewL() + * Two-phased constructor. + * Create a CSysInfoService object. + * @return A pointer to the created instance of CSysInfoService. + */ + IMPORT_C static CSysInfoService* NewL(); + + /** + * Destructor. + */ + ~CSysInfoService(); + + private: + + /** + * C++ default constructor. + */ + CSysInfoService(); + + public: + + /** + * GetInfoL () + * Retrieves specified SA value synchronously. + * User will provide SA and any input by aRequest argument. + * + * @param aEntity Entity of an system attribute. + * + * @param aKey Key of an system attribute. + * + * @param aOutput Retrived system attribute value. + * + * @param aInput Optional input data. + * + * @error @p KErrArgument if specified input SystemData is not associated with + * system attribute. + * @error @p KErrNotFound + * if specified system attribute not found. + * if Specified SA doesn't support this kind of operation + * i.e request type. + */ + + IMPORT_C void GetInfoL( const TDesC& aEntity, const TDesC& aKey, + CSysData*& aOutput, const CSysData* aInput=NULL ); + + /** + * GetInfoL () + * Retrieves specified SA value asynchronously. + * User will provide SA and any input thru aRequest argument. + * + * @param aEntity Entity of an system attribute. + * + * @param aKey Key of an system attribute. + * + * @param aTransID TransactionID for async operation. + * + * @param aCallback Observer for handling async response. + * + * @param aInput Optional input data. + * + * @error @p KErrArgument + * if specified input SystemData is not associated with + * system attribute. + * @error @p KErrNotFound + * if specified system attribute not found. + * if Specified SA doesn't support this kind of operation + * i.e request type. + * @error @p KErrAlreadyExists + * if Transaction ID specified already exists. + */ + + IMPORT_C void GetInfoL( const TDesC& aEntity, const TDesC& aKey, + TInt32 aTransID, ISystemObserver* aCallback, + const CSysData* aInput=NULL ); + + /** + * GetNotificationL () + * Registers for notifications for a given SA. + * User will provide SA and any input thru aRequest argument. + * + * @param aEntity Entity of an system attribute. + * + * @param aKey Key of an system attribute. + * + * @param aTransID TransactionID for async operation. + * + * @param aCallback Observer for handling async response. + * + * @param aInput Optional input data. + * + * @error @p KErrArgument + * if specified input SystemData is not associated with + * system attribute. + * @error @p KErrNotFound + * if specified system attribute not found. + * if Specified SA doesn't support this kind of operation + * i.e request type. + * @error @p KErrAlreadyExists + * if Transaction ID specified already exists. + */ + + IMPORT_C void GetNotificationL( const TDesC& aEntity, const TDesC& aKey, + TInt32 aTransID, ISystemObserver* aCallback, + const CSysData* aInput=NULL ); + /** + * SetInfoL() + * Modifies system attribute value. + * This API can be used to change system attribute value + * synchronously/asynchronously, based on attribute specification. + * + * @param aEntity Entity of an system attribute. + * + * @param aKey Key of an system attribute. + * + * @param aInput Input data. + * + * @error @p KErrArgument + * if specified input SystemData is not associated with + * system attribute. + * @error @p KErrNotFound + * if specified system attribute not found. + * if Specified SA doesn't support this kind of operation + * i.e request type. + * @error @p KErrAlreadyExists + * if Transaction ID specified already exists for async requests. + */ + + IMPORT_C void SetInfoL( const TDesC& aEntity, const TDesC& aKey, + const CSysData* aInput ); + + /** + * Cancel() + * Cancels any outstanding requests and releases resources owned by them. + * + */ + + IMPORT_C void Cancel(TInt32 aTransID); + + private: + /* + * Modifies General Entity attribute value. + */ + void SetGeneralInfoL(const TDesC& aKey, const CSysData* aInput); + + /* + * Modifies General Entity attribute value. + */ + void SetDisplayInfoL(const TDesC& aKey, const CSysData* aInput); + + /* + * Modifies Connectivity Entity attribute value. + */ + void SetConnectivityInfoL(const TDesC& aKey, const CSysData* aInput); + + /* + * Retrieves Network Entity attribute value. + */ + void GetNetworkInfoL(TPtrC aKey,CSysData*& aSysData); + + /* + * Retrieves Battery Entity attribute value. + */ + void GetBatteryInfoL(TPtrC aKey,CSysData*& aSysData); + + /* + * Retrieves General Entity attribute value. + */ + void GetGeneralInfoL(TPtrC aKey,CSysData*& aSysData); + + /* + * Retrieves Display Entity attribute value. + */ + void GetDisplayInfoL(TPtrC aKey,CSysData*& aSysData); + + /* + * Retrieves available/supported usb modes. + */ + void GetAvailableUsbModesL(CSysData*& aSysData); + + /* + * Retrieves Connectivity Entity attribute value. + */ + void GetConnectivittyInfoL(TPtrC aKey,CSysData*& aSysData); + + /* + * Retrieves Memory Entity attribute value. + */ + void GetMemoryInfoL(const TDesC& aKey, const CSysData* aInput, + CSysData*& aOutput); + + /* + * Retrieves Feature Entity attribute value. + */ + void GetFeatureInfoL(TPtrC aKey,CSysData*& aSysData); + /* + * Retrieves Device Entity attribute values. + */ + void GetDeviceInfoL(TPtrC aKey,CSysData*& aSysData); + + private: //DATA + + /** + * status member to identify feature manager initialization state. + */ + TBool iFeatureManagerInitialized; + + /** + * class to read static device properties. + */ + CDeviceInfo* iDeviceInfo; + }; + + +#endif __CSYSINFOSERVICE_H__ +