--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbuis/usbui/USBClassChangeUIPlugin/inc/USBClassChangeUIPluginCRWatcher.h Thu Dec 17 09:14:30 2009 +0200
@@ -0,0 +1,142 @@
+/*
+* 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 "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: Central repository key watcher class.
+*
+*/
+
+
+#ifndef USBCLASSCHANGEUIPLUGINCRWATCHER_H
+#define USBCLASSCHANGEUIPLUGINCRWATCHER_H
+
+// INCLUDES
+#include <centralrepository.h>
+
+// FORWARD DECLARATIONS
+class CRepository;
+
+/**
+* A callback interface for informing change of a setting in Central Repository
+*/
+class MUSBUICRSettingObserver
+ {
+ public: // New functions
+
+ /**
+ * Informs the observer that a setting has been changed.
+ * @param aKey The changed key.
+ * @return None.
+ */
+ virtual void SettingChangedL( TUint32 aKey ) = 0;
+ };
+
+
+/**
+* CUSBClassChangeUIPluginCRWatcher detects a change of the value of the CR key.
+* CUSBClassChangeUIPluginCRWatcher provides CActive object that is used to
+* detect when the value of the selected key in Central Repository is changed
+* by the USBWatcher. One observer can be notified by one or more
+* USBClassChangeUIPluginCRWatcher objects, each watching different keys.
+*/
+class CUSBClassChangeUIPluginCRWatcher : public CActive
+ {
+
+ public:
+
+ /**
+ * Factory method NewL
+ * @param aOwner The observer to be notified on the change.
+ * @param aKey The Central Repository key to be watched.
+ * @param aOneShot If false, the listening is restarted after change.
+ * @return The new watcher object.
+ */
+ static CUSBClassChangeUIPluginCRWatcher* NewL(
+ MUSBUICRSettingObserver& aOwner, TUint32 aKey,
+ TBool aOneShot = EFalse);
+
+ /**
+ * Starts listening for notifications. If already listening, nothing
+ * happens.
+ */
+ void StartListeningL();
+
+ /**
+ * Stops listening for notifications. If already stopped, nothing
+ * happens.
+ * @param none
+ * @return none
+ */
+ void StopListening();
+
+ /**
+ * C++ default constructor
+ * @param aOwner The observer to be notified on the change.
+ * @param aKey The Central Repository key to be watched.
+ * @param aOneShot If false, the listening is restarted after change.
+ */
+ CUSBClassChangeUIPluginCRWatcher(
+ MUSBUICRSettingObserver& aOwner, TUint32 aKey,
+ TBool aOneShot = EFalse);
+
+ /**
+ * Destructor.
+ */
+ virtual ~CUSBClassChangeUIPluginCRWatcher();
+
+ private:
+
+ /**
+ * Constructor.
+ * @param none
+ */
+
+ void ConstructL();
+
+ /**
+ * Implements CActive
+ * If this is not a one-shot CR watcher, the listening is restarted.
+ * @param none
+ * @return none
+ */
+ void RunL();
+
+ /**
+ * Implements CActive
+ * @param aError the error returned
+ * @return error
+ */
+ TInt RunError(TInt aError);
+
+ /**
+ * Implements CActive
+ * @param none
+ * @return none
+ */
+ void DoCancel();
+
+
+ private:
+ /** USB Watcher repository access */
+ CRepository* iPersonalityRepository;
+ /** The observer to be notified */
+ MUSBUICRSettingObserver& iOwner;
+ /** The repository key to be watcher */
+ TUint32 iKey;
+ /** If iOneShot is false, listening is restarted on notification */
+ TBool iOneShot;
+ };
+
+
+#endif // USBCLASSCHANGEUIPLUGINCRWATCHER_H
+
+// End of File