locationtriggering/ltcontainer/src/lbtcontainerextendedtriggerinfo.cpp
author hgs
Wed, 03 Nov 2010 23:28:39 +0530
changeset 56 4e949f03ecc5
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  class containing extended information about a trigger
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#include "lbtcontainerextendedtriggerinfo.h"
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    24
// CLbtExtendedTriggerInfo::NewL()
hgs
parents:
diff changeset
    25
//
hgs
parents:
diff changeset
    26
// (other items were commented in a header).
hgs
parents:
diff changeset
    27
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    28
//
hgs
parents:
diff changeset
    29
EXPORT_C CLbtExtendedTriggerInfo* CLbtExtendedTriggerInfo::NewL()
hgs
parents:
diff changeset
    30
    {
hgs
parents:
diff changeset
    31
	CLbtExtendedTriggerInfo* self=new( ELeave ) CLbtExtendedTriggerInfo;
hgs
parents:
diff changeset
    32
	CleanupStack::PushL( self );
hgs
parents:
diff changeset
    33
    self->ConstructL();
hgs
parents:
diff changeset
    34
    CleanupStack::Pop( self ); 
hgs
parents:
diff changeset
    35
    return self;
hgs
parents:
diff changeset
    36
    }
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
EXPORT_C CLbtExtendedTriggerInfo* CLbtExtendedTriggerInfo::NewL(
hgs
parents:
diff changeset
    39
    TLbtTriggerRectArea aArea,
hgs
parents:
diff changeset
    40
    TReal aHystRadius,
hgs
parents:
diff changeset
    41
    TBool aFired,
hgs
parents:
diff changeset
    42
    const TDesC8& aStrategyData,
hgs
parents:
diff changeset
    43
    TSecureId aOwnerSid,
hgs
parents:
diff changeset
    44
    TBool aFireOnCreation)
hgs
parents:
diff changeset
    45
    {
hgs
parents:
diff changeset
    46
	CLbtExtendedTriggerInfo* self=new( ELeave ) CLbtExtendedTriggerInfo;
hgs
parents:
diff changeset
    47
	CleanupStack::PushL( self );
hgs
parents:
diff changeset
    48
    self->ConstructL( aArea,
hgs
parents:
diff changeset
    49
                      aHystRadius,
hgs
parents:
diff changeset
    50
                      aFired, 
hgs
parents:
diff changeset
    51
                      aStrategyData,
hgs
parents:
diff changeset
    52
                      aOwnerSid,
hgs
parents:
diff changeset
    53
                      aFireOnCreation );
hgs
parents:
diff changeset
    54
    CleanupStack::Pop( self ); 
hgs
parents:
diff changeset
    55
    return self;
hgs
parents:
diff changeset
    56
    }
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
EXPORT_C CLbtExtendedTriggerInfo::~CLbtExtendedTriggerInfo()
hgs
parents:
diff changeset
    59
    {
hgs
parents:
diff changeset
    60
    delete iStrategyData;
hgs
parents:
diff changeset
    61
    }
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
EXPORT_C const CLbtExtendedTriggerInfo::TLbtTriggerRectArea 
hgs
parents:
diff changeset
    64
    CLbtExtendedTriggerInfo::TriggerReactangleArea() const
hgs
parents:
diff changeset
    65
    {
hgs
parents:
diff changeset
    66
    return iArea;
hgs
parents:
diff changeset
    67
    }
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
EXPORT_C void CLbtExtendedTriggerInfo::SetTriggerRectangleArea(
hgs
parents:
diff changeset
    70
    const CLbtExtendedTriggerInfo::TLbtTriggerRectArea& aArea)
hgs
parents:
diff changeset
    71
    {
hgs
parents:
diff changeset
    72
    iArea = aArea;
hgs
parents:
diff changeset
    73
    }
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
EXPORT_C const TReal& CLbtExtendedTriggerInfo::HysteresisRadius() const
hgs
parents:
diff changeset
    76
    {
hgs
parents:
diff changeset
    77
    return iHystRadius;
hgs
parents:
diff changeset
    78
    }
hgs
parents:
diff changeset
    79
    
hgs
parents:
diff changeset
    80
EXPORT_C void CLbtExtendedTriggerInfo::SetHysteresisRadius(
hgs
parents:
diff changeset
    81
    const TReal& aHystRadius)
hgs
parents:
diff changeset
    82
    {
hgs
parents:
diff changeset
    83
    iHystRadius = aHystRadius;
hgs
parents:
diff changeset
    84
    }
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
EXPORT_C TBool CLbtExtendedTriggerInfo::IsTriggerFired() const
hgs
parents:
diff changeset
    87
    {
hgs
parents:
diff changeset
    88
    return iFired;
hgs
parents:
diff changeset
    89
    }
hgs
parents:
diff changeset
    90
    
hgs
parents:
diff changeset
    91
EXPORT_C void CLbtExtendedTriggerInfo::SetTriggerFiredState(TBool aFired)
hgs
parents:
diff changeset
    92
    {
hgs
parents:
diff changeset
    93
    iFired = aFired;
hgs
parents:
diff changeset
    94
    }
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
EXPORT_C const TDesC8& CLbtExtendedTriggerInfo::StategyData() const
hgs
parents:
diff changeset
    97
    {
hgs
parents:
diff changeset
    98
    return *iStrategyData;
hgs
parents:
diff changeset
    99
    }
hgs
parents:
diff changeset
   100
    
hgs
parents:
diff changeset
   101
EXPORT_C TLbtTriggerFireInfo CLbtExtendedTriggerInfo::GetFiredInfo() const
hgs
parents:
diff changeset
   102
    {
hgs
parents:
diff changeset
   103
    return iFiredInfo;
hgs
parents:
diff changeset
   104
    }
hgs
parents:
diff changeset
   105
    
hgs
parents:
diff changeset
   106
EXPORT_C void CLbtExtendedTriggerInfo::SetFiredInfo(TLbtTriggerFireInfo aFiredInfo)
hgs
parents:
diff changeset
   107
    {
hgs
parents:
diff changeset
   108
    iFiredInfo = aFiredInfo;
hgs
parents:
diff changeset
   109
    }
hgs
parents:
diff changeset
   110
    
hgs
parents:
diff changeset
   111
EXPORT_C void CLbtExtendedTriggerInfo::SetStrategyDataL(
hgs
parents:
diff changeset
   112
    const TDesC8& aStrategyData)
hgs
parents:
diff changeset
   113
    {
hgs
parents:
diff changeset
   114
    // Pre-allocate the memory. If the memory allocation fails atleast the
hgs
parents:
diff changeset
   115
    // old data is still valid in this case.
hgs
parents:
diff changeset
   116
    HBufC8 *tmp = HBufC8::NewL( aStrategyData.Length() );
hgs
parents:
diff changeset
   117
    tmp->Des().Copy( aStrategyData );
hgs
parents:
diff changeset
   118
    if ( iStrategyData )
hgs
parents:
diff changeset
   119
        {
hgs
parents:
diff changeset
   120
        delete iStrategyData;
hgs
parents:
diff changeset
   121
        iStrategyData = NULL;
hgs
parents:
diff changeset
   122
        }
hgs
parents:
diff changeset
   123
    iStrategyData = tmp;
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
EXPORT_C const TSecureId& CLbtExtendedTriggerInfo::OwnerSid() const
hgs
parents:
diff changeset
   127
    {
hgs
parents:
diff changeset
   128
    return iOwnerSid;
hgs
parents:
diff changeset
   129
    }
hgs
parents:
diff changeset
   130
    
hgs
parents:
diff changeset
   131
EXPORT_C void CLbtExtendedTriggerInfo::SetOwnerSid(const TSecureId& aOwnerSid)
hgs
parents:
diff changeset
   132
    {
hgs
parents:
diff changeset
   133
    iOwnerSid = aOwnerSid;
hgs
parents:
diff changeset
   134
    }
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
EXPORT_C TBool CLbtExtendedTriggerInfo::IsTriggerFireOnCreation() const
hgs
parents:
diff changeset
   137
	{
hgs
parents:
diff changeset
   138
	return iFireOnCreation;	
hgs
parents:
diff changeset
   139
	}
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
EXPORT_C void CLbtExtendedTriggerInfo::SetTriggerFireOnCreation(TBool aFireOnCreation)
hgs
parents:
diff changeset
   142
	{
hgs
parents:
diff changeset
   143
	iFireOnCreation = aFireOnCreation;	
hgs
parents:
diff changeset
   144
	}
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
CLbtExtendedTriggerInfo::CLbtExtendedTriggerInfo()
hgs
parents:
diff changeset
   147
    {
hgs
parents:
diff changeset
   148
    }
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
void CLbtExtendedTriggerInfo::ConstructL()
hgs
parents:
diff changeset
   151
    {
hgs
parents:
diff changeset
   152
    // Fill iStrategyData with KNullDesC.
hgs
parents:
diff changeset
   153
    // This is required because the method StategyData()
hgs
parents:
diff changeset
   154
    // does not return a pointer. Instead it returns a TDesC&.
hgs
parents:
diff changeset
   155
    // If this HBufC is null then accessing the Ptr will result
hgs
parents:
diff changeset
   156
    // in a KERN-EXEC 3.
hgs
parents:
diff changeset
   157
    SetStrategyDataL( KNullDesC8() );
hgs
parents:
diff changeset
   158
    }
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
void CLbtExtendedTriggerInfo::ConstructL(
hgs
parents:
diff changeset
   161
    TLbtTriggerRectArea aArea,
hgs
parents:
diff changeset
   162
    TReal aHystRadius,
hgs
parents:
diff changeset
   163
    TBool aFired,
hgs
parents:
diff changeset
   164
    const TDesC8& aStrategyData,
hgs
parents:
diff changeset
   165
    TSecureId aOwnerSid,
hgs
parents:
diff changeset
   166
    TBool aFireOnCreation)
hgs
parents:
diff changeset
   167
    {
hgs
parents:
diff changeset
   168
    SetTriggerRectangleArea( aArea );
hgs
parents:
diff changeset
   169
    SetHysteresisRadius( aHystRadius );
hgs
parents:
diff changeset
   170
    SetTriggerFiredState( aFired );
hgs
parents:
diff changeset
   171
    SetStrategyDataL( aStrategyData );
hgs
parents:
diff changeset
   172
    SetOwnerSid( aOwnerSid );
hgs
parents:
diff changeset
   173
    SetTriggerFireOnCreation(aFireOnCreation);
hgs
parents:
diff changeset
   174
    }
hgs
parents:
diff changeset
   175