diff -r 000000000000 -r 164170e6151a secsrv_plat/remote_lock_api/inc/RemoteLockSettings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secsrv_plat/remote_lock_api/inc/RemoteLockSettings.h Tue Jan 26 15:20:08 2010 +0200 @@ -0,0 +1,236 @@ +/* +* Copyright (c) 2006 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: API for applications to access remote lock settings. +* +*/ + + +#ifndef REMOTELOCKSETTINGS_H +#define REMOTELOCKSETTINGS_H + + +// INCLUDES +#include +#include +#include +#include + +// CONSTANT + +// MACROS +/** Maximum length of user-given remote lock code */ +const TInt KRLockMaxLockCodeLength = 20; +/** Minimum length of user-given remote lock code */ +const TInt KRLockMinLockCodeLength = 5; +/** Length of the stored remote lock code */ +const TInt KRLockStoredLockCodeLength = 32; + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class MRemoteLockSettingsHandler; + + +// CLASS DECLARATION +/** +* Interface for handling remote lock settings +* +* @lib rlocksettings.lib +* @since S60 3.2 +* +*/ +class CRemoteLockSettings: public CBase, public MCenRepNotifyHandlerCallback + { + public: + /** + * Two-Phased constructor + * + * @since S60 3.2 + * @param aHandler Client implemented notification handler that will be + * called when remote lock settings are changed. + * If the client doesn't need notification, then no + * parameter needed. + * @return + */ + IMPORT_C static CRemoteLockSettings* NewL( + MRemoteLockSettingsHandler* aHandler = NULL ); + + /** + * Two-Phased constructor + * + * @since S60 3.2 + * @param aHandler Client implemented notification handler that will be + * called when remote lock settings are changed. + * If the client doesn't need notification, then no + * parameter needed. + * @return + */ + IMPORT_C static CRemoteLockSettings* NewLC( + MRemoteLockSettingsHandler* aHandler = NULL); + + IMPORT_C virtual ~CRemoteLockSettings(); + + /** + * Gets the remote lock code. Note that the retrieved remote lock code + * is not in plain format. + * + * @since S60 3.2 + * @param aLockCode For retrieving the remote lock code. The length + * must be at least KRLStoredLockCodeLength. + * @return ETrue if succeeded, + * EFalse otherwise. + */ + IMPORT_C TBool GetLockCode( TDes& aLockCode ) const; + + /** + * Gets the remote lock code. Note that the retrieved remote lock code + * is not in plain format. + * + * @since S60 3.2 + * @param aLockCode For retrieving the remote lock code. The length + * must be at least KRLStoredLockCodeLength. + * @param aLockCodeTrimmed For retrieving the remote lock code. + * The length must be at least + * KRLStoredLockCodeLength. Same as aLockCode, + * but formatted differently before storing: + * leading and trailing space characters + * removed, multiple spaces replaced with + * single space. + * @return ETrue if succeeded, + * EFalse otherwise. + */ + IMPORT_C TBool GetLockCode( + TDes& aLockCode, + TDes& aLockCodeTrimmed ) const; + + /** + * Enables remote lock and stores the correct remote lock code. + * + * @since S60 3.2 + * @param aLockCode New remote lock code. + * @return ETrue if succeeded, + * EFalse otherwise. + */ + IMPORT_C TBool SetEnabledL( const TDesC& aLockCode ); + + /** + * Disables remote lock. + * + * @since S60 3.2 + * @param + * @return ETrue if succeeded, + * EFalse otherwise. + */ + IMPORT_C TBool SetDisabled(); + + /** + * Gets the current remote lock status. + * + * @since S60 3.2 + * @param aEnabled For retrieving the current remote lock status. + * @return ETrue if succeeded, + * EFalse otherwise. + */ + IMPORT_C TBool GetEnabled( TBool& aEnabled ) const; + + /** + * Compares two remote lock codes. + * + * @since S60 3.2 + * @param aLockCode The lock code to compare. This should be in plain + * format. + * @param aCorrectLockCode The correct lock code to compare against. + * This should be the one retrieved using GetLockCode(), and + * thus is not in plain format. + * @return ETrue if the lock codes are the same, + * EFalse otherwise. + */ + IMPORT_C TBool CompareLockCodesL( + const TDesC& aLockCode, + const TDesC& aCorrectLockCode ) const; + + /** + * Enables or disables remote lock settings notification. If the + * settings are changed, the notification handler given in NewL() + * or NewLC() will be called. + * + * @since S60 3.2 + * @param aNotifyEnable For enabling or disabling the remote lock + * settings notification. + * @return ETrue if succeeded, + * EFalse otherwise. + */ + IMPORT_C TBool RemoteLockNotifyL( const TBool aNotifyEnable ); + + private: + + /** + * Constructor. + * + * @since S60 3.2 + * @param aHandler Client implemented notification handler that will be + * called when remote lock settings are changed. + */ + CRemoteLockSettings( MRemoteLockSettingsHandler* aHandler ); + + /** + * 2nd phase constructor. + */ + void ConstructL(); + + // from base class MCenRepNotifyHandler + + /** + * From MCenRepNotifyHandler + * Notify handler. + */ + void HandleNotifyGeneric( TUint32 aId ); + + public: // data + + private: // data + + CRepository* iSession; + CCenRepNotifyHandler* iNotifyHandler; + MRemoteLockSettingsHandler* iHandler; + }; + +// CLASS DECLARATION + +/** +* Abstract interface for handling the notification when remote lock settings +* are changed. User derives his class from this and implements +* HandleRemoteLockNotifyL(). +* +* @lib rlocksettings.lib +* @since S60 3.2 +*/ +class MRemoteLockSettingsHandler + { + public: + /** + * This function will be called when the remote lock settings are + * changed. + * + * @since S60 3.2 + * @param + * @return + */ + virtual void HandleRemoteLockNotifyL() = 0; + }; + +#endif +//End of File. \ No newline at end of file