--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gsprofilesrv_pub/profiles_engine_wrapper_api/inc/MProEngNotifyHandler.h Thu Dec 17 08:52:52 2009 +0200
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 2002-2004 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: Abstract interface for handling profile change notification
+*
+*/
+
+
+
+#ifndef MPROENGNOTIFYHANDLER_H
+#define MPROENGNOTIFYHANDLER_H
+
+// INCLUDES
+#include <e32def.h>
+
+// FORWARD DECLARATIONS
+class MProEngNotifyHandlerExt;
+class MProEngProfileActivationObserver;
+class MProEngActiveProfileObserver;
+class MProEngProfileObserver;
+class MProEngProfileNameArrayObserver;
+
+// CLASS DECLARATION
+
+/**
+* Profiles change notification handler.
+* This class is used for registration to get notifications about changes in
+* Profiles data.
+*
+* @lib ProfileEngine.lib
+* @since S60 3.1
+*/
+class MProEngNotifyHandler
+ {
+ public: // New functions
+
+ /**
+ * Request notifications of profile activations. The notifications are
+ * received as long as CancelProfileActivationNotifications() or
+ * CancelAll() is called. If the client wants to change the observer,
+ * he should first cancel these notifications and then re-request them
+ * with the new observer instance.
+ * @since S60 3.1
+ * @param aObserver Reference to the observer to be notified in the
+ * event of profile activation.
+ * @return KErrNone if succesful, KErrAlreadyExists if this notification
+ * handler is already used for requesting profile activation
+ * notifications. In other cases another system wide error code.
+ */
+ virtual TInt RequestProfileActivationNotificationsL(
+ MProEngProfileActivationObserver& aObserver ) = 0;
+
+ /**
+ * Request notifications of active profile modifications.
+ * The notifications are received as long as
+ * CancelActiveProfileNotifications() or CancelAll() is called. If the
+ * client wants to change the observer, he should first cancel these
+ * notifications and then re-request them with the new observer
+ * instance.
+ * @since S60 3.1
+ * @param aObserver Reference to the observer to be notified in the
+ * event of active profile modification.
+ * @return KErrNone if succesful, KErrAlreadyExists if this notification
+ * handler is already used for requesting active profile
+ * notifications. In other cases another system wide error code.
+ */
+ virtual TInt RequestActiveProfileNotificationsL(
+ MProEngActiveProfileObserver& aObserver ) = 0;
+
+ /**
+ * Request notifications about changes in the given profile.
+ * This is useful for cases when the client is interested about
+ * changes in a specific profile no matter if the profile is active or
+ * not. The notifications are received as long as
+ * CancelProfileNotifications() or CancelAll() is called. If the
+ * client wants to change the observer for the notifications about the
+ * same profile, he should first cancel these notifications and then
+ * re-request them with the new observer instance.
+ * @since S60 3.1
+ * @param aObserver Reference to the observer to be notified in the
+ * event of modification of the specified profile.
+ * @param aProfileId the ID of the profile the changes of which has to
+ * be notified.
+ * @return KErrNone if succesful, KErrAlreadyExists if this notification
+ * handler is already used for requesting notifications of
+ * changes in the given profile. KErrNotFound, if a profile with
+ * the given ID does not exist. In other cases another system
+ * wide error code.
+ */
+ virtual TInt RequestProfileNotificationsL(
+ MProEngProfileObserver& aObserver,
+ TInt aProfileId ) = 0;
+
+ /**
+ * Request notifications about changes in the profile name array. This
+ * includes the cases when: a new profile has been created, a profile
+ * has been deleted, the name of a profile has been changed.
+ * The notifications are received as long as
+ * CancelProfileNameArrayNotifications() or CancelAll() is called. If
+ * the client wants to change the observer, he should first cancel these
+ * notifications and then re-request them with the new observer
+ * instance.
+ * @since S60 3.1
+ * @param aObserver Reference to the observer to be notified in the
+ * event of a profile name array modification.
+ * @return KErrNone if succesful, KErrAlreadyExists if this notification
+ * handler is already used for requesting profile name array
+ * notifications. In other cases another system wide error code.
+ */
+ virtual TInt RequestProfileNameArrayNotificationsL(
+ MProEngProfileNameArrayObserver& aObserver ) = 0;
+
+ /**
+ * Cancel the registration for receiving notifications about profile
+ * activation events.
+ * @since S60 3.1
+ */
+ virtual void CancelProfileActivationNotifications() = 0;
+
+ /**
+ * Cancel the registration for receiving notifications about the active
+ * profile modification events.
+ * @since S60 3.1
+ */
+ virtual void CancelActiveProfileNotifications() = 0;
+
+ /**
+ * Cancel the registration for receiving notifications about the given
+ * profile modification events.
+ * @since S60 3.1
+ * @param aProfileId The ID of the profile for which the client wants
+ * to cancel the receiving of modification events.
+ */
+ virtual void CancelProfileNotifications( TInt aProfileId ) = 0;
+
+ /**
+ * Cancel the registration for receiving notifications about the changes
+ * in the profile name array.
+ * @since S60 3.1
+ */
+ virtual void CancelProfileNameArrayNotifications() = 0;
+
+ /**
+ * Cancel all the registrations for receiving notifications.
+ * @since Series 60 3.1
+ */
+ virtual void CancelAll() = 0;
+
+ public:
+
+ /**
+ * Destructor.
+ */
+ virtual ~MProEngNotifyHandler() {}
+
+ private: // Extension interface
+
+ /**
+ * This member is internal and not intended for use.
+ */
+ virtual MProEngNotifyHandlerExt* Extension() { return NULL; }
+
+ };
+
+#endif // MPROENGNOTIFYHANDLER_H
+
+// End of File
+