loc_plat/location_centre_api/inc/lcnotification.h
changeset 0 522cd55cc3d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loc_plat/location_centre_api/inc/lcnotification.h	Tue Feb 02 00:16:03 2010 +0200
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2007 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:  Observer class defintion to notify any changes to the
+*                state of Location Applications.
+*
+*/
+
+#ifndef M_LCNOTIFICATION_H
+#define M_LCNOTIFICATION_H
+
+/**
+ *  @file lcnotification.h
+ *
+ *  This file provides the definitions for the observer class which enables
+ *  the client application to listen to notifications from Location Centre.
+ *
+ *  @lib lcservice.lib
+ *  @since S60 v5.0 
+ */
+
+// SYSTEM INCLUDES
+#include <e32base.h>
+
+/**
+ *  @class MLcNotification
+ *  Observer class to notify the changes to the applications registered with
+ *  Location Centre.
+ *
+ *  This client application needs to pass an instance of this class when calling 
+ *  @ref CLcService::StartNotificationL
+ *
+ *  @lib lcservice.lib
+ *  @since S60 v5.0
+ */
+class MLcNotification
+    {
+public:
+    /**
+     * Notification for the termination of the chained Location based Application.
+     *
+     * The notification can occur under the following conditions
+     * - When a new Location based Application registers into Location
+     * Centre. In this case, the Location based Application would be 
+     * immediately available for all Location Centre operations.
+     * - When an already registered Location based Application de-registers.
+     * In this case, the Location based Application will be removed from
+     * Location Centre. Hence, it would not be available for any further Location
+     * Centre operations.
+     * - When a Location based Application is present on a removable media (like
+     * Memory card)and the media is removed. In this case, for all practical
+     * purposes the Location based Application behaves as in the previous context.
+     * The difference being that the application does not get removed from
+     * Location Centre but is marked as an Absent application. When the
+     * removable media is re-inserted, the application immediately becomes 
+     * available for all Location Centre operations.
+     * - When an removable media containing an Absent Location based Application
+     * is re-inserted. In this case, the Location based Application would be
+     * immediately available for all Location Centre operations.
+     * - When the Location Centre server terminates pre-maturely. In this case, no
+     * further notifications would be given to the Client application and all 
+     * further requests to the Location Centre server would fail with 
+     * @p KErrServerTerminated.     
+     *         
+     * @since S60 v5.0
+     * @param[in] aErrorCode Error code for the notification completion.
+     *                       The following are the values which the variable
+     *                       can assume on completion of the request.
+     *                       - KErrNone If there is an new Location based
+     *                       Application registered to Location Centre, when
+     *                       an existing Location based Application is removed
+     *                       from Location Centre or when an Location based 
+     *                       Application becomes absent or present.
+     *                       - KErrCancel If an outstanding request is Cancelled.
+     *                       - KErrServerTerminated If the Location Centre server
+     *                       is pre-maturely terminated.
+     *                       - System wide error codes in other error conditions. 
+     */
+    virtual void LcStatusChangedL( TInt aErrorCode ) = 0;
+    };
+
+#endif // M_LCNOTIFICATION_H