locationtriggering/ltcontextsourceplugin/inc/lbttriggernode.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 10:12:24 +0200
changeset 1 788b770ce3ae
parent 0 667063e416a2
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* Copyright (c) 2009 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:  Class used to set & get the trigger attributes
*
*/

#ifndef TRIGGERNODE_H_
#define TRIGGERNODE_H_

#include <e32cmn.h>
#include <lbttriggerconditionarea.h> 
#include <lbttriggerentry.h>


#include "lbtcontextsourceplugincommon.h"

/*
 * This class simply holds the trigger specifications.
 * The input parameters to create a trigger are stored to and 
 * retrieved from this class.
 */
class TTriggerNode       
    {
public: 
    
    /*
     * Store trigger name
     */
     void SetTriggerNameL(const TPtrC& aTriggerName);

     /*
      * Store Latitude
      */
     void SetLatitudeL(const TPtrC& aLatitude);
    
     /*
      * Store Longitude
      */
     void SetLongitudeL(const TPtrC& aLongitude);
    
     /*
      * Store type of monitoring area
      */
     void SetRegionL(const TPtrC& aRegion);
    
     /*
      * Store radius of trigger monitoring area
      */
     void SetRadiusL(const TPtrC& aRadius);
    
     /*
      * Store trigger fire condition.
      * This decided whether the trigger is to be fired when
      * the device enters the triggering are, or whether
      * the trigger is to be fire when the device leaves the 
      * monitoring area, or on both conditions.
      */
     void SetDirectionL(const TPtrC& aDirection);
    
     /*
      * Store Name of Trigger set
      */
     void SetContextSource(const TPtrC& aSetName);
     
     /*
      * Store information as to whether the trigger is
      * to be actively monitored or not
      */
     void SetCurrentStateL(const TPtrC& aCurrentState);

     /*
      * Retrieve trigger name
      */
      TInt GetTriggerName( TPtrC& aTriggerName );
    
     /*
      * Retrieve Latitude
      */
      TInt GetLatitude( TReal& aLatitude );

     /*
      * Retrieve Longitude
      */
      TInt GetLongitude( TReal& aLongitude );
    
     /*
      * Retrieve type of monitoring area
      */
      TInt GetRegion( TPtrC& aRegion );
    
     /*
      * Retrieve radius of trigger monitoring area
      */
      TInt GetRadius( TReal& aRadius );
    
     /*
      * Retrieve trigger fire condition.
      * This decided whether the trigger is to be fired when
      * the device enters the triggering are, or whether
      * the trigger is to be fire when the device leaves the 
      * monitoring area, or on both conditions.
      */
     CLbtTriggerConditionArea::TDirection GetDirection();
    
     /*
      * Retrieve Name of Trigger set
      */
     TPtrC& GetContextSource();

     /*
      * Retrieve information as to whether the trigger is
      * to be actively monitored or not
      */
     CLbtTriggerEntry::TLbtTriggerState GetCurrentState();

private:
    
    /*
     * Latitude
     */
    TReal64 iLatitude;
     
    /*
     * Longitude
     */
    TReal64 iLongitude;
     
    /*
     * Trigger name
     */
     TPtrC iTriggerName;
     
     /*
      * Type of triggering area
      */
     TPtrC iRegion;
     
     /*
      * Radius of monitoring region
      */
     TReal iRadius;
     
     /*
      * Setname to which the trigger belongs
      */
     TPtrC iSetName;
     
     /*
      * Direction of monitoring trigger firing event. (OnEntry or OnExit or both)
      */
     CLbtTriggerConditionArea::TDirection iDirection;
     
     /*
      * Current state of the trigger
      */
     CLbtTriggerEntry::TLbtTriggerState iCurrentState;

    };

#endif /* TRIGGERNODE_H_ */