--- /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