locsrv_pub/location_triggering_api/inc/lbt.h
changeset 0 667063e416a2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locsrv_pub/location_triggering_api/inc/lbt.h	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,1363 @@
+/*
+* 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:  location triggering server client interface
+*
+*/
+
+
+
+#ifndef LBT_H
+#define LBT_H
+
+#include <e32std.h>
+#include <lbs.h>
+#include <lbtserver.h>
+#include <lbttriggerentry.h>
+#include <lbtcommon.h>
+#include <lbttriggerchangeevent.h>
+#include <lbttriggeringsystemsettings.h>
+#include <lbtlisttriggeroptions.h>
+
+
+class CLbtTriggerEntry;
+class CLbtTriggerFilterBase;
+class CLbtListTriggerOptions;
+class CLbtTriggerInfo;
+class CLbtClientRequester;
+class CLbtSubSessnPtrHolder;
+struct TLbtTriggerCreationInfo;
+struct TLbtTriggerUpdationInfo;
+struct TLbtTriggerStateInfo;
+
+
+/**
+ * A handle to Location Triggering Server subsession. This class provides 
+ * methods to use location triggering service from Location Triggering 
+ * Server.
+ * 
+ * RLbt is used to create subsession with Location Triggering Server for the 
+ * purpose of using the location triggering service. This class provides 
+ * mechanisms for creating, listing, modifying and deleting trigger entries in 
+ * Location Triggering Server. Besides, there are also methods to get 
+ * trigger change and system settings change events, and session trigger 
+ * firing event. It also provides method for getting
+ * location triggering related system settings. 
+ * 
+ * Before using any of these services, a connection to Location Triggering
+ * Server must first be made.
+ *
+ * A client can have multiple sessions connected to the Location Triggering 
+ * Server. There can be multiple subsessions opened from one session. 
+ * Triggers created from one subsession can be accessed from other 
+ * subsessions within the same process. Trigger change event, trigger
+ * firing event and triggering system settings change event are 
+ * send to all subsessions that have issued notification
+ * requests to Location Triggering Server.
+ *
+ * Client must not issue a notification request while there is 
+ * a same request still outstanding. An attempt to do so will generate a
+ * panic with code ELbtDuplicateRequest in category "LocTriggering". This applies 
+ * to the following functions.
+ * 
+ * - NotifyTriggerChangeEvent
+ * - NotifyTriggerFired
+ * - NotifyTriggeringSystemSettingChange
+ *
+ * Client may get error code KErrInUse if it tries to read, write or delete a 
+ * trigger while the previous write or delete operation is not completed yet. 
+ *
+ * @see RLbtServer
+ * 
+ * @lib lbt.lib
+ *
+ * @since S60 5.1
+ */
+class RLbt : public RSubSessionBase
+    {
+    public:
+       /**
+        * Opens a subsession with Location Triggering Server.
+        *
+        * A subsession must be opened before any other service can be used.
+        * 
+        * @panic LocTriggering ELbtServerBadHandle If a session to Location 
+        * Triggering Server has not been connected.
+        *
+        * @param[in] aServer Reference to the Location Triggering Server 
+        * session.
+        *
+        * @return KErrNone if successful. Otherwise, Symbian standard 
+        * error code is returned, such as KErrNoMemory, KErrServerBusy, etc.
+        */
+        IMPORT_C TInt Open( RLbtServer& aServer );
+
+       /**
+        * Connect and open a subsession with Location Triggering Server.
+        *
+        * Note, this function will connect and create a session to Location
+        * Triggering Server. Client application shall avoid unnecesary
+        * session connection to Location Triggering Server. Whenever
+        * possible, client applicaiton shall reuse same session to
+        * open a subsession. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If a session to Location 
+        * Triggering Server has not been connected.
+        *
+        * @return KErrNone if successful. Otherwise, Symbian standard 
+        * error code is returned, such as KErrNoMemory, KErrServerBusy, etc.
+        */
+        IMPORT_C TInt Open();
+    
+       /**
+        * Closes the subsession with Location Triggering Server.
+        *
+        * Close() must be called when RLbt subsession is no longer required. 
+        * 
+        * Before a subsession is closed, the client application must ensure
+        * that all outstanding notification requests have been cancelled. In
+        * particular, the application must issue all the appropriate Cancel 
+        * requests and then wait for a confirmation that the notification has 
+        * been terminated. A failure to do so results in a panic.
+        *
+        * When the subsession is closed, all the session triggers owned by 
+        * the client application are deleted by Location Triggering Server. 
+        * Start-up triggers are not affected by this method. 
+        * 
+        * @panic LocTriggering ELbtRequestsNotCancelled If client application 
+        * has requests outstanding with Location Triggering Server.
+        */
+        IMPORT_C void Close();
+    
+       /**
+        * Creates a trigger in Location Triggering Server and returns the 
+        * trigger Id.
+        *
+        * Client application may use this method to create a trigger in 
+        * Location Triggering Server. When a trigger is created, the process 
+        * of the client application becomes the owner process of the trigger.
+        *
+        * Trigger entry shall be a subclass of CLbtTriggerEntry.
+        *
+        * Start-up triggers are stored persistently. They can be deleted
+        * by method RLbt::DeleteTriggerL(). Session triggers remain 
+        * until DeleteTriggerL() is called or the client's subsession is 
+        * closed. 
+        *
+        * While creating a trigger, the following attributes are mandatory 
+        * for any type of trigger,
+        * - Name
+        * - Requestors
+        * - Trigger condition
+        *
+        * In case of start-up trigger, the following attribute is 
+        * also mandatory
+        * - Process Identity
+        *
+        * Although manager UI is not a mandatory attribute, it's highly 
+        * recommended that correct manager UI is specified. 
+        *
+        * Currently, the system only supports CLbtTriggerConditionArea
+        * to be used as trigger condition. Following 
+        * attributes must be specified,
+        * - Trigger area 
+        * - Direction
+        *
+        * Currently, only CLbtGeoCircle can be used as trigger area. The
+        * center of the geographical circle must be specified. 
+        * 
+        * If the radius of the trigger area is not specified, minimum 
+        * size of trigger area will be used in the created trigger entry. 
+        * 
+        * The trigger ID attribute is ignored while creating a trigger. If the 
+        * trigger is successfully created, trigger ID is returned to the 
+        * client application.  If the trigger is enabled, Location Triggering
+        * Server will supervise the trigger and fires it when trigger 
+        * conditions are met.
+        *
+        * Creating any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to create start-up 
+        * triggers. 
+        *
+        * @see CLbtTriggerEntry CLbtSessionTrigger CLbtStartupTrigger
+        * @see CancelCreateTrigger
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is 
+        * not opened.
+        *
+        * @param[in] aTrigger The trigger to be created. Trigger Id attribute
+        * is ignored by Location Triggering Server.
+        * @param[out] aTriggerId Contains trigger ID of the created trigger
+        * When the request is completed. Trigger is is unique among all triggers
+        * currently exist in the system. If a trigger is removed from the system,
+        * its Id may be reused by another trigger.
+        * @param[in] aFireOnCreation The parameter specifies if the trigger
+        * can be fired right after the creation. 
+        * - If this parameter is ETrue. For entry type of trigger, 
+        * if the trigger is created inside the trigger area, it is 
+        * fired right after it is created. For exit type of trigger, if the
+        * trigger is created outside of the trigger area, it is
+        * fired right after it is created. 
+        * - If this parameter is EFalse. For entry type of 
+        * trigger, if the trigger is created inside the trigger area, it
+        * will not be fired immediately. The trigger will be fired when 
+        * the terminal moves outside of the trigger area and then enters 
+        * the trigger area again. For exit type of trigger, if the trigger 
+        * is created outside of trigger area it will be fired immediately. 
+        * The trigger will be fired when the terminal moves into the trigger 
+        * area and then  moves out again. 
+        * @param[out] aStatus Contains the error code when the 
+        * request is completed.
+        * - KErrNone. If the trigger is created successfully.
+        * - KErrArgument. If any of mandatory attributes are not specified, 
+        * the manager UI is specified but it is not a valid UI application, 
+        * or the length of the trigger name is zero or larger than 
+        * @p KLbtMaxNameLength.
+        * - KErrNotSupported. If the trigger condition is not 
+        * an instance of @p CLbtTriggerConditionBasic, or if the trigger area is 
+        * not an instance of CLbtGeoCircle. Also returned if the trigger direction
+        * is EFireOnExit and the trigger being created is a cell based trigger.
+        * - KErrAccessDenied. If the requestor attributes are missing, privacy 
+        * checking by Location Server determines that any of the specified 
+        * requestors do not have permission to retrieve location information, 
+        * - KErrPermisionDenied. If the client application does not have 
+        * enough capabilities to create this trigger.
+        * - KErrTriggeringAreaTooSmall.  If the specified trigger area is 
+        * smaller than minimum size of trigger area.
+        * - KErrLbtMaxTriggerLimitExceeded. If creating startup trigger exceeds
+        * the system defined limit.
+        * - KErrDiskFull. Disk full when creating a start-up trigger.
+        * - Other standard Symbian error code, such as KErrNoMemory, 
+        * KErrServerBusy, KErrGeneral. If the operation fails. 
+        */
+        IMPORT_C void CreateTrigger( 
+            const CLbtTriggerEntry& aTrigger,
+            TLbtTriggerId& aTriggerId,
+            TBool aFireOnCreation,
+            TRequestStatus& aStatus );
+            
+       /**
+        * Cancel trigger creation.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see CreateTriggerL
+        */
+        IMPORT_C void CancelCreateTrigger();
+            
+       /**
+        * Deletes a specific trigger from Location Triggering Server.
+        * 
+        * Client applications can only delete triggers owned by it. 
+        *
+        * Deleting any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to delete start-up 
+        * triggers. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[in] aId The ID of the trigger to be deleted.
+        *
+        * @leave KErrNotFound If the specified trigger is not found or
+        * it is not owned by the client application.
+        * @leave KErrInUse If the previous write or delete operation on the
+        * trigger is not completed yet.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void DeleteTriggerL( TLbtTriggerId aId );
+
+       /**
+        * Delete triggers that are owned by the client application and fulfill 
+        * the specified criteria. 
+        *
+        * If none of the triggers that belong to the client application 
+        * fulfill the specified criteria, the method leaves with KErrNotFound.
+        *
+        * If only a part of the triggers that fullfill the criteria belong to 
+        * the client application, then only those triggers belonging to that 
+        * client application would be deleted and the method would complete 
+        * without any leave.
+        * 
+        * If no filter is specified, all triggers owned by the client 
+        * application are deleted.
+        *
+        * Deleting any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to delete 
+        * start-up triggers. 
+        * 
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not 
+        * opened.
+        *
+        * @param[in] aFilter Specify the filter for the delete operation. 
+        * Trigger entries that fulfill the criteria will be deleted 
+        * from Location Triggering Server. By default, no filter is used.
+        * In this case, all triggers owned by the client applications 
+        * will be deleted.
+        * @leave KErrNotSupported If there is an area filter used and the area
+        * is not a type of geographical circular or rectangular area.
+        * @leave KErrNotFound If no trigger belonging to the client application
+        * fullfills the criteria specified.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void DeleteTriggersL( 
+            CLbtTriggerFilterBase* aFilter = NULL );
+
+       /**
+        * Delete triggers asynchronously. Triggers to be deleted must be owned
+        * by the client application and fulfill the specified criteria.
+        *
+        * If no trigger that belong to the client application fulfills the 
+        * specified criteria, the method completes the client request
+        * with KErrNotFound.
+        *
+        * If only a part of the triggers that fullfill the criteria belong to 
+        * the client application, then only those triggers belonging to that 
+        * client application would be deleted and the method would complete 
+        * without any error.
+        *
+        * If no filter is specified, all triggers owned by the client 
+        * application are deleted.
+        *
+        * Deleting any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to delete start-up 
+        * triggers. 
+        * 
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not
+        * opened.
+        *
+        * @param[out] aStatus Contains the error code when the 
+        * request is completed.
+        * - KErrNone If the operation was successful.
+        * - KErrNotFound If no trigger belonging to the client application
+        * fullfills the criteria specified.
+        * - Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        * @param[in] aFilter Specify the filter for the delete operation. 
+        * Trigger entries that fulfill the criteria will be deleted 
+        * from Location Triggering Server. Default value is NULL in which case
+        * all triggers owned by the client applications will be deleted.
+        */
+        IMPORT_C void DeleteTriggers( 
+            TRequestStatus& aStatus, 
+            CLbtTriggerFilterBase* aFilter = NULL );
+
+       /**
+        * Delete triggers based on a list of trigger Ids. The triggers to 
+        * be deleted must be owned by the client application. 
+        *
+        * If none of the triggers to be deleted are owned by the client 
+        * application then no triggers would be deleted and this method 
+        * will leave with KErrNotFound.
+        *
+        * If the list is empty, no trigger will be deleted and this method 
+        * completes without any leave. 
+        * 
+        * In the case where a list of trigger IDs are mentioned of which only 
+        * a few of those belong to the client, then only all those triggers 
+        * that belong to the client will be deleted and the rest ignored. The 
+        * method will complete without any leave in this case.
+        * 
+        * Deleting any type of triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to delete start-up 
+        * triggers. 
+        * 
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[in] aTriggerIdList The list contains IDs of the triggers
+        * that are to be deleted. 
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void DeleteTriggersL( 
+            const RArray<TLbtTriggerId> &aTriggerIdList );
+
+       /**
+        * Delete triggers asynchronously based on a list of trigger Ids. 
+        * The triggers to be deleted must be owned by the client application.
+        *
+        * If none of the triggers to be deleted are owned by the client 
+        * application then no triggers would be deleted and this method 
+        * will complete the request with KErrNotFound.
+        * 
+        * If the list is empty, no trigger will be deleted and this method 
+        * completes without any error code.
+        * 
+        * In the case where a list of trigger IDs are mentioned of which only 
+        * a few of those belong to the client, then only all those triggers 
+        * that belong to the client will be deleted and the rest ignored. The 
+        * method will complete without any leave in this case.
+        *
+        * Deleting any type of triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to delete 
+        * start-up triggers. 
+        * 
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not 
+        * opened.
+        *
+        * @param[in] aTriggerIdList The list contains IDs of the triggers
+        * that are to be deleted. 
+        * @param[out] aStatus Contains the error code when the 
+        * request is completed.
+        * - KErrNone If the operation was succeed.
+        * - Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void DeleteTriggers( 
+            const RArray<TLbtTriggerId>& aTriggerIdList,
+            TRequestStatus& aStatus );
+        
+       /**
+        * Cancel delete triggers operation.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see DeleteTriggers
+        */
+        IMPORT_C void CancelDeleteTriggers();     
+
+       /**
+        * Gets the specified trigger from Location Triggering Server. 
+        * 
+        * Client application takes the ownership ofthe returned trigger object.
+        * The returned trigger object is left in cleanup stack when the 
+        * trigger entry is successfully retrieved.
+        *
+        * Each trigger entry object consumes about 100 - 200 bytes user heap,
+        * if all attributes are filled. To save memory usage, 
+        * client applications can retrieve trigger object with only partial 
+        * attributes filled. 
+        *
+        * This method requires @p Location capability. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not 
+        * opened.
+        * @param[in] aId The ID of the trigger to be retrieved.
+        * @param[in] aEntryFieldMask The trigger entry's attribute field mask.
+        * It specifies what attributes shall be filled in the returned 
+        * trigger object. The default value is KLbtTriggerAttributeFieldsAll, 
+        * which means all attributes field will be filled. Wether the trigger ID 
+        * attribute is specified or not in this mask, the returned 
+        * trigger object always contains a valid trigger Id.
+        * @param[in] aDynInfoFieldMask Specifies which dynamic information
+        * field shall be filled in the returned object. The default value is
+        * KLbtTriggerDynInfoFieldsAll, which means all dynamic information
+        * fields will be filled.
+        * @return The retrieved trigger object. Ownership of the object is
+        * transferred to the client application.
+        * @leave KErrNotFound If the specified trigger is not found or it's
+        * not owned by the client application.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C CLbtTriggerInfo* GetTriggerLC( 
+            TLbtTriggerId aId,
+            TLbtTriggerAttributeFieldsMask aEntryFieldMask = 
+                KLbtTriggerAttributeFieldsAll,
+            TLbtTriggerDynamicInfoFieldsMask  aDynInfoFieldMask = 
+                KLbtTriggerDynInfoFieldsAll );
+
+       /**
+        * Changes the attributes of the specified trigger.
+        *
+        * Client applications can use this method to change attributes of a
+        * specified trigger that is owned by it. Client applications can
+        * only update triggers owned by itself.
+        *
+        * Some attributes are not modifiable after the trigger is created. Trying 
+        * to change the following attributes will generate a leave with 
+        * error code KErrAccessDenied.
+        * 
+        * For any type of the trigger, the following attributes can't be
+        * modified after the trigger is created.
+        * - ID
+        * - Requestor
+        * - Manager UI
+        *
+        * The following attribute can't be modified in addition for 
+        * start-up triggers.
+        * - Trigger handling process identity
+        * - Trigger handling process SID
+        *
+        * If the specified trigger does not belong to the client application 
+        * the method leaves with KErrNotFound.
+        *
+        * Updating any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to update start-up 
+        * triggers. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[in] aTrigger The trigger object to be updated in Location 
+        * Triggering Server. The trigger ID identifies the trigger to be updated.
+        * @param[in] aFieldMask Specifies the attribute fields that are valid in 
+        * the aTrigger and shall be updated to the trigger. Trigger ID
+        * field in aTrigger is always used regardless whether the trigger ID 
+        * field is marked or not in the mask. The attribute value in aTrigger 
+        * is ignored if the attribute field in aFieldMask is not marked.
+        * @param[in] aFireOnUpdate The parameter specifies if the trigger
+        * can be fired right after the update operation. 
+        * - If this parameter is ETrue. For entry type of trigger, 
+        * if the trigger is updated inside the trigger area, it is 
+        * fired right after it is updated. For exit type of trigger, if the
+        * trigger is updated outside of the trigger area, it is
+        * fired right after it is updated. 
+        * - If this parameter is EFalse. For entry type of 
+        * trigger, if the trigger is updated inside the trigger area, it
+        * will not be fired immediately. The trigger will be fired when 
+        * the terminal moves outside of the trigger area and then enters 
+        * the trigger area again. For exit type of trigger, if the trigger 
+        * is updated outside of trigger area it will be fired immediately. 
+        * The trigger will be fired when the terminal moves into the trigger 
+        * area and then  moves out again. 
+        * @leave KErrNotFound If the specified trigger is not found or it's
+        * not owned by the client application.
+        * @leave KErrAccessDenied If the client application tries to change 
+        * the attributes which are not modifiable.
+        * @leave KErrArgument If the length of trigger name is zero or 
+        * larger than @p KLbtMaxNameLength. 
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void UpdateTriggerL( 
+            const CLbtTriggerEntry& aTrigger,
+            TLbtTriggerAttributeFieldsMask aFieldMask,
+            TLbtFireOnUpdate aFireOnUpdate );
+            
+            
+       /**
+        * Changes the attributes of the specified trigger asynchronously
+        *
+        * Client applications can use this method to change attributes of a
+        * specified trigger that is owned by it. Client applications can
+        * only update triggers owned by itself.
+        *
+        * Some attributes are not modifiable after the trigger is created. Trying 
+        * to change the following attributes will generate a leave with 
+        * error code KErrAccessDenied.
+        * 
+        * For any type of the trigger, the following attributes can't be
+        * modified after the trigger is created.
+        * - ID
+        * - Requestor
+        * - Manager UI
+        *
+        * The following attribute can't be modified in addition for 
+        * start-up triggers.
+        * - Trigger handling process identity
+        * - Trigger handling process SID
+        *
+        * If the specified trigger does not belong to the client application 
+        * the method leaves with KErrNotFound.
+        *
+        * Updating any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to update start-up 
+        * triggers. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[in] aTrigger The trigger object to be updated in Location 
+        * Triggering Server. The trigger ID identifies the trigger to be updated.
+        * @param[in] aFieldMask Specifies the attribute fields that are valid in 
+        * the aTrigger and shall be updated to the trigger. Trigger ID
+        * field in aTrigger is always used regardless whether the trigger ID 
+        * field is marked or not in the mask. The attribute value in aTrigger 
+        * is ignored if the attribute field in aFieldMask is not marked.
+        * @param[in] aFireOnUpdate The parameter specifies if the trigger
+        * can be fired right after the update operation. 
+        * - If this parameter is ETrue. For entry type of trigger, 
+        * if the trigger is updated inside the trigger area, it is 
+        * fired right after it is updated. For exit type of trigger, if the
+        * trigger is updated outside of the trigger area, it is
+        * fired right after it is updated. 
+        * - If this parameter is EFalse. For entry type of 
+        * trigger, if the trigger is updated inside the trigger area, it
+        * will not be fired immediately. The trigger will be fired when 
+        * the terminal moves outside of the trigger area and then enters 
+        * the trigger area again. For exit type of trigger, if the trigger 
+        * is updated outside of trigger area it will be fired immediately. 
+        * The trigger will be fired when the terminal moves into the trigger 
+        * area and then  moves out again. 
+        * @leave KErrNotFound If the specified trigger is not found or it's
+        * not owned by the client application.
+        * @leave KErrAccessDenied If the client application tries to change 
+        * the attributes which are not modifiable.
+        * @leave KErrArgument If the length of trigger name is zero or 
+        * larger than @p KLbtMaxNameLength. 
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void UpdateTrigger( 
+            const CLbtTriggerEntry& aTrigger,
+            TLbtTriggerAttributeFieldsMask aFieldMask,
+            TLbtFireOnUpdate aFireOnUpdate,
+            TRequestStatus& aStatus );            
+    	
+    	  /**
+        * Cancel update trigger operation.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see UpdateTrigger
+        */
+        IMPORT_C void CancelUpdateTrigger();     
+        
+       /**
+        * Sets the state of the specified trigger. Client application can 
+        * change the state of only triggers owned by it.
+        * 
+        * To enable the trigger, set the trigger state to
+        * @p ELbtTriggerEnabled. To disable the trigger, 
+        * set the trigger state to @p ELbtTriggerDisabled.
+        *
+        * Changing state of any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to change state of 
+        * start-up triggers. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[in] aId The ID of the trigger whose state will be updated.
+        * @param[in] aState New state of the specified trigger.
+        * @param[in] aFireOnUpdate The parameter specifies if the trigger
+        * can be fired right after the update operation. 
+        * - If this parameter is ETrue. For entry type of trigger, 
+        * if the trigger is updated inside the trigger area, it is 
+        * fired right after it is updated. For exit type of trigger, if the
+        * trigger is updated outside of the trigger area, it is
+        * fired right after it is updated. 
+        * - If this parameter is EFalse. For entry type of 
+        * trigger, if the trigger is updated inside the trigger area, it
+        * will not be fired immediately. The trigger will be fired when 
+        * the terminal moves outside of the trigger area and then enters 
+        * the trigger area again. For exit type of trigger, if the trigger 
+        * is updated outside of trigger area it will be fired immediately. 
+        * The trigger will be fired when the terminal moves into the trigger 
+        * area and then  moves out again.        
+        * @leave KErrNotFound If the specified trigger is not found or it's
+        * not owned by the client application.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void SetTriggerStateL( 
+            TLbtTriggerId aId, 
+            CLbtTriggerEntry::TLbtTriggerState aState,
+            TLbtFireOnUpdate aFireOnUpdate );
+
+       /**
+        * Sets state of multiple triggers. Client application can change state
+        * of only triggers owned by it.
+        *
+        * If a filter is specified, all triggers that fulfill the criteria 
+        * and owned by the requesting client application will be affected.
+        * 
+        * If no filter is specified, all triggers owned by the client 
+        * application will be affected.
+        *
+        * If no trigger owned by the client application fulfills the specified 
+        * criteria, no trigger will be modified and the method leaves with
+        * KErrNotFound.
+        *
+        * Changing state of any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to change state of 
+        * start-up triggers. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[in] aState New state of the triggers.
+        * @param[in] aFireOnUpdate The parameter specifies if the trigger
+        * can be fired right after the update operation. 
+        * - If this parameter is ETrue. For entry type of trigger, 
+        * if the trigger is updated inside the trigger area, it is 
+        * fired right after it is updated. For exit type of trigger, if the
+        * trigger is updated outside of the trigger area, it is
+        * fired right after it is updated. 
+        * - If this parameter is EFalse. For entry type of 
+        * trigger, if the trigger is updated inside the trigger area, it
+        * will not be fired immediately. The trigger will be fired when 
+        * the terminal moves outside of the trigger area and then enters 
+        * the trigger area again. For exit type of trigger, if the trigger 
+        * is updated outside of trigger area it will be fired immediately. 
+        * The trigger will be fired when the terminal moves into the trigger 
+        * area and then  moves out again.        
+        * @param[in] aFilter The filter to be used. Triggers that fulfill
+        * the criteria of the specified filter will be affected. 
+        * Default value is NULL in which case all triggers owned by the client 
+        * application will be updated.
+        * @leave KErrNotSupported If there is an area filter used and the area
+        * is not a type of geographical circular or rectangular area.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void SetTriggersStateL( 
+            CLbtTriggerEntry::TLbtTriggerState aState,
+            TLbtFireOnUpdate aFireOnUpdate,
+            CLbtTriggerFilterBase* aFilter = NULL );
+
+       /**
+        * Sets state of multiple triggers asynchronously.
+        *
+        * If a filter is specified, all triggers owned by the client 
+        * application that fulfill the  criteria will be affected.
+        *
+        * If no filter is specified, all triggers owned by the client 
+        * application will be affected.
+        *
+        * If no trigger that are owned by the client application fulfills the
+        * specified criteria, no trigger will be modified and this completes 
+        * with KErrNotFound.
+        *
+        * Changing state of any type triggers requires @p Location capability. 
+        * @p WriteUserData capability is required in addition to change state of 
+        * start-up triggers. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[out] aStatus Contains the error code when the 
+        * request is completed.
+        * - KErrNotSupported If there is an area filter used and the area
+        * is not a type of geographical circular or rectangular area.
+        * - Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        * @param[in] aState New state of the triggers.
+        * @param[in] aFireOnUpdate The parameter specifies if the trigger
+        * can be fired right after the update operation. 
+        * - If this parameter is ETrue. For entry type of trigger, 
+        * if the trigger is updated inside the trigger area, it is 
+        * fired right after it is updated. For exit type of trigger, if the
+        * trigger is updated outside of the trigger area, it is
+        * fired right after it is updated. 
+        * - If this parameter is EFalse. For entry type of 
+        * trigger, if the trigger is updated inside the trigger area, it
+        * will not be fired immediately. The trigger will be fired when 
+        * the terminal moves outside of the trigger area and then enters 
+        * the trigger area again. For exit type of trigger, if the trigger 
+        * is updated outside of trigger area it will be fired immediately. 
+        * The trigger will be fired when the terminal moves into the trigger 
+        * area and then  moves out again.        
+        * @param[in] aFilter The filter to be used. Triggers that fulfill
+        * the criteria of the specified filter will be affected. 
+        * Default is value is NULL in which case all triggers owned by the 
+        * client application will be updated.
+        */
+        IMPORT_C void SetTriggersState( 
+            TRequestStatus& aStatus,
+            CLbtTriggerEntry::TLbtTriggerState aState,
+            TLbtFireOnUpdate aFireOnUpdate,
+            CLbtTriggerFilterBase* aFilter = NULL );
+        
+       /**
+        * Cancel set trigger state operation.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see SetTriggersState
+        */
+        IMPORT_C void CancelSetTriggersState();     
+
+       /**
+        * Lists IDs of triggers that are owned by the client application.
+        * 
+        * Client applications can specify options used in retrieving 
+        * trigger IDs.
+        * 
+        * This method requires @p Location capability. 
+        *
+        * @see CLbtListTriggerOptions
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[out] aTriggerIdList On return, aTriggerIdList contains IDs of
+        * retrieved triggers. The content of aTriggerIdList will be cleared 
+        * even if this function fails.
+        * @param[in] aListOptions Specified the options used for listing 
+        * triggers. By default, the value is NULL. In this case, all triggers
+        * owned by the client application will be retrieved. 
+        * @leave KErrNotSupported If there is an area filter used and the area
+        * is not a type of geographical circular or rectangular area.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void ListTriggerIdsL( 
+            RArray < TLbtTriggerId >& aTriggerIdList,
+            CLbtListTriggerOptions* aListOptions = NULL );
+
+       /**
+        * Lists asynchronously IDs of triggers that are owned by the 
+        * client application.
+        * 
+        * Client applications can specify options used in retrieving 
+        * trigger IDs.
+        * 
+        * This method requires @p Location capability. 
+        *
+        * @see CLbtListTriggerOptions
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not 
+        * opened.
+        *
+        * @param[out] aStatus Contains the error code when the 
+        * request is completed. KErrNotSupported is returned if there is an area 
+        * filter used and the area is not a type of geographical circular or 
+        * rectangular area.
+        * - KErrNotSupported If there is an area filter used and the area
+        * is not a type of geographical circular or rectangular area.
+        * - Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        * @param[out] aTriggerIdList On return, aTriggerIdList contains IDs of
+        * retrieved triggers. The content of aTriggerIdList will be cleared 
+        * even if this function fails.
+        * @param[in] aListOptions Specified the options used for listing 
+        * triggers. Default value is NULL in which case all triggers owned by 
+        * the client application will be retrieved. 
+        */
+        IMPORT_C void ListTriggerIds( 
+            TRequestStatus& aStatus,
+            RArray < TLbtTriggerId >& aTriggerIdList,
+            CLbtListTriggerOptions* aListOptions = NULL );
+            
+       /**
+        * Cancel list trigger ids operation.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see ListTriggerIds
+        */
+        IMPORT_C void CancelListTriggerIds();    
+
+       /**
+        * Gets triggers from Location Triggering Server. A client application
+        * can only retrieve triggers owned by it.
+        * 
+        * Client applications can specify options used in retrieving triggers.
+        * Ownership of the returned trigger objects is transferred to 
+        * the client application.
+        *
+        * Note: This function may require large free heap memory from
+        * the client application depending on the number of triggers to 
+        * be retrieved and the attributes to be filled.
+        *
+        * This method requires @p Location capability. 
+        *
+        * @see CLbtListTriggerOptions
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not 
+        * opened.
+        *
+        * @param[out] aTriggerList On return, contains trigger objects retrieved
+        * from Location Triggering Server. The content of aTriggerList is
+        * cleared even if this function fails. The ownership of the returned 
+        * pointers is transfered to the client application. 
+        * @param[in] aListOptions Specifies the options for listing triggers. 
+        * By default, the value is NULL. In this case all triggers
+        * owned by the client application will be retrieved. 
+        * @leave KErrNotSupported If there is an area filter used and the area
+        * is not a type of geographical circular or rectangular area.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void GetTriggersL( 
+            RPointerArray < CLbtTriggerInfo >& aTriggerList,
+            CLbtListTriggerOptions* aListOptions = NULL );
+        
+       /**
+        * Gets triggers asynchronously from Location Triggering Server. A 
+        * client application can only retrieve triggers owned by it.
+        * 
+        * Client applications can specify options used in retrieving triggers.
+        * Ownership of the returned trigger objects is transferred to 
+        * the client application.
+        *
+        * Note: This function may require large free heap memory from
+        * the client application depending on the number of triggers to 
+        * be retrieved and the attributes to be filled.
+        *
+        * This method requires @p Location capability. 
+        *
+        * @see CLbtListTriggerOptions
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[out] aStatus Contains the error code when the 
+        * request is completed. 
+        * - KErrNotSupported. If there is an area 
+        * filter used and the area is not a type of geographical circular or 
+        * rectangular area.
+        * - Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        * @param[out] aTriggerList On return, contains trigger objects retrieved
+        * from Location Triggering Server. The content of aTriggerList is
+        * cleared even if this function fails. The ownership of the returned 
+        * pointers is transfered to the client application. 
+        * @param[in] aListOptions Specifies the options for listing triggers. 
+        * By default, the value is NULL. In this case all triggers
+        * owned by the client application will be retrieved. 
+        */
+        IMPORT_C void GetTriggers( 
+            TRequestStatus& aStatus,
+            RPointerArray < CLbtTriggerInfo >& aTriggerList,
+            CLbtListTriggerOptions* aListOptions = NULL );
+            
+       /**
+        * Cancel get triggers operation.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see GetTriggers
+        */
+        IMPORT_C void CancelGetTriggers();    
+
+       /**
+        * Creates an iterator in Location Triggering Server to retrieve
+        * trigger objects incrementally. 
+        * 
+        * An iterator must be created before GetNextTriggerLC() can be called.
+        * The iterator is constructed in the server side and it is subsession
+        * specific. Calling this function again will reset the iterator.
+        * After the iterator is constructed, the client application calls 
+        * GetNextTriggerLC() repeatedly to retrieve all interested trigger 
+        * objects. Note, client applications can only get triggers owned by
+        * itself.
+        *
+        * If any trigger is changed during iteration, the client application
+        * shall call this method again to reset the iterator and get the 
+        * triggers again incrementally.
+        *
+        * This method requires @p Location capability. 
+        *
+        * @see CLbtListTriggerOptions
+        *
+        * @panic LocTriggering  ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[in] aListOptions Specifies the options used for listing 
+        * triggers. Default value is NULL, which will retrieve all triggers
+        * owned by the client application. 
+        * @leave KErrNotSupported If there is an area filter used and the area
+        * is not a type of geographical circular or rectangular area.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void CreateGetTriggerIteratorL( 
+            CLbtListTriggerOptions* aListOptions = NULL );
+
+       /**
+        * Creates an iterator asynchronously in Location Triggering Server 
+        * to retrieve trigger objects incrementally. 
+        * 
+        * An iterator must be created before GetNextTriggerLC() can be called.
+        * The iterator is constructed in the server side and it is subsession
+        * specific. Calling this function again will reset the iterator.
+        * After the iterator is constructed, the client application calls 
+        * GetNextTriggerLC() repeatedly to retrieve all interested trigger 
+        * objects. Note, client applications can only get triggers owned by
+        * itself.
+        *
+        * If any trigger is changed during iteration, the client application
+        * shall call this method again to reset the iterator and get the 
+        * triggers again incrementally.
+        *
+        * This method requires @p Location capability. 
+        *
+        * @see CLbtListTriggerOptions
+        *
+        * @panic LocTriggering  ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[out] aStatus Contains the error code when the 
+        * request is completed. KErrNotSupported is returned if there is an area 
+        * filter used and the area is not a type of geographical circular or 
+        * rectangular area.
+        * @param[in] aListOptions Specifies the options used for listing 
+        * triggers. Default value is NULL, which will retrieve all triggers
+        * owned by the client application. 
+        */
+        IMPORT_C void CreateGetTriggerIterator( 
+            TRequestStatus& aStatus,
+            CLbtListTriggerOptions* aListOptions = NULL );
+        
+       /**
+        * Cancel create trigger iterator operation.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see CreateGetTriggerIterator
+        */
+        IMPORT_C void CancelCreateTriggerIterator();     
+
+       /**
+        * Gets trigger objects incrementally.
+        * 
+        * This method is used together with CreateGetTriggerIteratorL() to 
+        * incrementally retrieve trigger objects owned by the client 
+        * application. If the iterator is not created when this function is
+        * called, client application gets a panic with code 
+        * @p ELbtIteratorNotCreated.
+        * 
+        * This method returns NULL when all triggers are retrieved. Client
+        * application shall call CreateGetTriggerIteratorL() again to
+        * reset the iterator.
+        * 
+        * Client application takes ownership of the returned trigger object. 
+        * The returned trigger object is left in cleanup stack when the trigger 
+        * object is successfully retrieved.
+        *
+        * This method requires @p Location capability. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        * @panic LocTriggering ELbtIteratorNotCreated If the iterator has not been created.
+        *
+        * @return The retrieved trigger object. Ownership of the returned 
+        * object is transferred to the client application. 
+        * Returns NULL if all triggers have been retrieved.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C CLbtTriggerInfo* GetNextTriggerLC();
+
+       /**
+        * Listens for change events of the triggers owned by the client 
+        * application.
+        *
+        * This method is used by the client application to get change events
+        * when one or many of its triggers are changed.
+        *
+        * Triggers can be deleted and modified not only by the owner process and
+        * trigger handling process, but also by other system application, 
+        * e.g. system management UI application. 
+        *
+        * This function is asynchronous and it will complete the request status
+        * when an event occurs. Client applications can get detailed information of
+        * the change from the retrieved event object. Client application shall
+        * call this function again to get further change event.
+        *
+        * Event listening can be cancelled by calling
+        * CancelNotifyTriggerChangeEvent().
+        *
+        * This method requires @p Location capability. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        * @panic LocTriggering ELbtDuplicateRequest If the subsession has
+        * already an outstanding NotifyTriggerChangeEvent() request.
+        *
+        * @param[out] aEvent Will contain the event information when an event
+        * occurs.
+        * @param[out] aStatus Will be completed with @p KErrNone if an event occurs
+        *   and an error code(for example, KErrServerBusy, etc.) if some error 
+        *   was encountered.
+        */
+        IMPORT_C void NotifyTriggerChangeEvent( 
+            TLbtTriggerChangeEvent& aEvent, 
+            TRequestStatus& aStatus );
+
+       /**
+        * Cancels listening for trigger change event.
+        * 
+        * This function does not require any capabilities. 
+        *
+        * @see NotifyTriggerChangeEvent
+        */
+        IMPORT_C void CancelNotifyTriggerChangeEvent();
+
+       /**
+        * Listens for the event if any trigger is fired. 
+        *
+        * Client applications can use this method to get notified 
+        * when a trigger (session triggers and start-up triggers) is 
+        * fired. The firing information is 
+        * returned to the client application. If more that one  
+        * trigger is fired, Location Triggers Server will complete 
+        * the request and  the first fired trigger is returned. 
+        * Client application shall call this method again to get next 
+        * trigger firing event. 
+        *
+        * When a start-up trigger is fired, Location Triggering
+        * Server will first launch the specified trigger
+        * handling process, and then notify the client application
+        * about the firing event.
+        *
+        * A client application will get firing event of 
+        * - triggers that are created by itself(Client application is
+        * the owner process of the trigger).
+        * - triggers that trigger handling process SID is set and
+        * matches SID of the client application's process(Client 
+        * application is the triggering handling process of the 
+        * trigger, and it can access the trigger). 
+        *
+        * The request is canceled by CancelNotifyTriggerFired()
+        *
+        * This method requires @p Location capability. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        * @panic LocTriggering ELbtDuplicateRequest If the subsession has
+        * already an outstanding NotifyTriggerFired() request.
+        *
+        * @param[out] aFireInfo On return contains the fired  
+        * trigger's firing information.
+        * @param[out] aStatus Will be completed with @p KErrNone if an event
+        * occurs, and an error code( for example KErrServerBusy, etc.) if some 
+        * error encountered.
+        */
+        IMPORT_C void NotifyTriggerFired( 
+            TLbtTriggerFireInfo& aFireInfo, 
+            TRequestStatus& aStatus );
+
+       /**
+        * Cancels listening for the trigger fired event.
+        *
+        * This function does not require any capabilities. 
+        *
+        * @see NotifyTriggerFired
+        */
+        IMPORT_C void CancelNotifyTriggerFired();
+
+       /**
+        * Gets fired trigger's information. 
+        * 
+        * This method is used by the client application to get information 
+        * of all the fired triggers( session triggers and start-up triggers). 
+        * If the same trigger is 
+        * fired more than once before the client application retrieves 
+        * the firing information, only the most recent fired
+        * information is returned. If no trigger has been fired, 
+        * an empty list is returned.
+        *
+        * This method requires @p Location capability. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[out] aTriggerInfoList On return contains fired triggers'
+        * information.
+        * @leave Other standard Symbian error code, such as KErrNoMemory,
+        * KErrServerBusy, KErrGeneral, etc.
+        */
+        IMPORT_C void GetFiredTriggersL( 
+            RArray < TLbtTriggerFireInfo >& aTriggerInfoList );
+
+       /**
+        * Listens for the change event of triggering system settings.
+        *
+        * This function is asynchronous and it will complete the 
+        * request status when triggering system settings are changed.
+        * Client applications can get detailed information of triggering 
+        * system setting from method GetTriggeringSystemSettingL(). 
+        * Client application shall call this function again to get 
+        * further change event.
+        *
+        * Event listening can be cancelled by calling
+        * CancelNotifyTriggeringSystemSettingChange().
+        *
+        * This function requires @p ReadUserData capability. 
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        * @panic LocTriggering ELbtDuplicateRequest If the subsession has
+        * already an outstanding NotifyTriggeringSystemSettingChange() 
+        * request.
+        *
+        * @param[out] aSettings On return contains the new triggering
+        * system settings.
+        * @param[out] aStatus Will be completed with @p KErrNone if an 
+        * event occurs and an error code( for example, KErrServerBusy, etc.) if 
+        * some error was encountered. 
+        * aStatus will be completed with KErrPermissionDenied if the client 
+        * application does not have enough capability.
+        */
+        IMPORT_C void NotifyTriggeringSystemSettingChange( 
+            TLbtTriggeringSystemSettings& aSettings,
+            TRequestStatus& aStatus );
+        
+       /**
+        * Cancels listening for triggering system setting change event.
+        *
+        * @see NotifyTriggeringSystemSettingChange
+        */
+        IMPORT_C void CancelNotifyTriggeringSystemSettingChange();
+    
+       /**
+        * Gets triggering system setting.
+        *
+        * This method is used by the client application to get triggering
+        * system settings. Client applications can use
+        * NotifyTriggeringSystemSettingChange()
+        * get the change event of the triggering system settings.
+        *
+        * This function requires @p ReadUserData capability. 
+        *
+        * @since S60 5.1
+        *
+        * @panic LocTriggering ELbtServerBadHandle If the subsession is not opened.
+        *
+        * @param[out] aSetting On return contains triggering system 
+        * settings.
+        * @leave KErrPermissionDenied if the client application does not 
+        * have enough capabilities to retrieve the settings.
+        */
+        IMPORT_C void GetTriggeringSystemSettingsL( 
+            TLbtTriggeringSystemSettings& aSetting );
+        
+       /**
+        * Cancels all asynchronous operation that has been issued from 
+        * this subsession.
+        */    
+        IMPORT_C void CancelAll();     
+        
+       /**
+        * Default constructor.
+        */
+        IMPORT_C RLbt();
+        
+       /**
+        * Destructor.
+        */
+        IMPORT_C ~RLbt();
+        
+       /** 
+        * Handles list triggers operation
+        */
+        void HandleListTriggerIdsL();
+        
+       /**
+        * Handles get triggers operation
+        */
+        
+        void HandleGetTriggersL();
+    
+    private:
+       /**
+        * Helper method for create trigger operation.
+        */
+        void CreateTriggerL( 
+            const CLbtTriggerEntry& aTrigger,
+            TLbtTriggerId& aTriggerId,
+            TBool aFireOnCreation,
+            TRequestStatus& aStatus );
+       /**
+        * Helper method for delete triggers operation.
+        */    
+        void DeleteTriggersL( 
+            CLbtTriggerFilterBase* aFilter,
+            TRequestStatus& aStatus );
+       /**
+        * Helper method for delete triggers operation.
+        */     
+        void DeleteTriggersL( 
+            const RArray<TLbtTriggerId>& aTriggerIdList,
+            TRequestStatus& aStatus );
+        
+        /**
+         * Helper method for update trigger operation.
+         */ 
+        void UpdateTriggerL( 
+                    const CLbtTriggerEntry& aTrigger,
+                    TLbtTriggerAttributeFieldsMask aFieldMask,
+                    TLbtFireOnUpdate aFireOnUpdate,
+                    TRequestStatus& aStatus ); 
+       /**
+        * Helper method for set triggers state operation.
+        */    
+        void SetTriggersStateL( 
+            CLbtTriggerEntry::TLbtTriggerState aState,
+            CLbtTriggerFilterBase* aFilter,
+            TLbtFireOnUpdate aFireOnUpdate,
+            TRequestStatus& aStatus );
+       /**
+        * Helper method for list trigger ids operation.
+        */      
+        void ListTriggerIdsL( 
+            RArray < TLbtTriggerId >& aTriggerIdList,
+            CLbtListTriggerOptions* aListOptions,
+            TRequestStatus& aStatus );
+        
+       /**
+        * Helper method for get triggers operation.
+        */     
+        void GetTriggersL( 
+            RPointerArray < CLbtTriggerInfo >& aTriggerList,
+            CLbtListTriggerOptions* aListOptions,
+            TRequestStatus& aStatus );
+        
+       /**
+        * Helper method for create trigger iterator operation.
+        */     
+        void CreateGetTriggerIteratorL( 
+            CLbtListTriggerOptions* aListOptions,
+            TRequestStatus& aStatus );                       
+        
+       /**
+        * Helper method for get triggers operation.
+        */ 
+        void GetTriggersInServerL(CBufFlat* aBuf,CLbtListTriggerOptions* aListOptions,TInt& aBufLength );
+        
+        /**
+         * Validates geo area information based on type e.g. Coordinate, Cell, WLan, Hybrid.
+         * 
+         * @panic ELbtErrArgument If invalid.
+         * 
+         * @param[in] aGeoArea the geographical area         
+         * @leave Other standard Symbian error code, such as KErrNoMemory
+         */
+        void ValidateGeoAreaInformationL( CLbtGeoAreaBase* aGeoArea );
+        
+       /**
+        * Symbian 2nd phase construction.
+        */
+        void ConstructL();
+         
+    private:// data
+       /**
+        * Subsession pointer holder
+        * Own.
+        */
+        CLbtSubSessnPtrHolder* iPtrHolder;
+        
+       /**
+        * Pointer to client requestor.  
+        * Own.
+        */
+        CLbtClientRequester* iClientRequester; 
+        
+       /**
+        * Trigger entry state.
+        */
+        CLbtTriggerEntry::TLbtTriggerState iState;
+        
+       /**
+        * Pointer to TLbtTriggerCreationInfo object.
+        * Own.
+        */
+        TLbtTriggerCreationInfo* iTriggerCreationInfo;
+       
+       
+       /**
+        * Pointer to TLbtTriggerCreationInfo object.
+        * Own.
+        */
+        TLbtTriggerUpdationInfo* iTriggerUpdationInfo; 
+       
+        /**
+        * Pointer to TLbtTriggerStateInfo object.
+        * Own.
+        */
+        TLbtTriggerStateInfo* iTriggerStateInfo;  
+        
+       /**
+        * CLbtTriggerInfo pointer array.
+        */
+        RPointerArray<CLbtTriggerInfo> iTriggerList;
+		
+	   /**
+		* Iterator flag.
+		*/
+		TBool iCreateIteratorFlag;        
+    };
+
+
+#endif // LBT_H