loc_plat/location_centre_api/inc/lcnotification.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 00:16:03 +0200
changeset 0 522cd55cc3d7
permissions -rw-r--r--
Revision: 201003 Kit: 201005

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