secsrv_plat/remote_lock_api/inc/RemoteLockSettings.h
changeset 0 164170e6151a
--- /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 <e32std.h>
+#include <e32base.h>
+#include <e32cons.h>
+#include <cenrepnotifyhandler.h>      
+
+// 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