--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locationtriggering/ltcontainer/src/lbtcontainerlistoptions.cpp Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,261 @@
+/*
+* 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: This file defines the container trigger entry class
+*
+*/
+
+
+#include <lbttriggerdynamicinfo.h>
+
+#include "lbtcontainerlistoptions.h"
+#include "lbtcontainertriggerfilter.h"
+#include <lbtsessiontrigger.h>
+#include <lbtstartuptrigger.h>
+#include <lbttriggerentry.h>
+#include <lbttriggerconditionbase.h>
+#include <lbttriggerconditionarea.h>
+#include <lbtgeoareabase.h>
+#include <lbtgeocircle.h>
+#include <lbtgeorect.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CLbtContainerListOptions::NewL()
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CLbtContainerListOptions* CLbtContainerListOptions::NewL()
+ {
+ CLbtContainerListOptions* self=new( ELeave ) CLbtContainerListOptions;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CLbtContainerListOptions::NewL(
+// CLbtTriggerEntry* aEntry,
+// TLbtTriggerDynamicInfo* aDynInfo,
+// TLbtDerivedTriggerInfo* aDerivedInfo)
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CLbtContainerListOptions* CLbtContainerListOptions::NewL(
+ CLbtListTriggerOptions* aListOptions,
+ CLbtContainerFilter* aFilter)
+ {
+ CLbtContainerListOptions* self=new( ELeave ) CLbtContainerListOptions;
+ CleanupStack::PushL( self );
+ self->ConstructL(aListOptions,aFilter);
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CLbtContainerListOptions::~CLbtContainerListOptions()
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CLbtContainerListOptions::~CLbtContainerListOptions()
+ {
+ // Ownership of filter base is not take by list options.
+ // Hence delete the filter base
+ if( iListOptions )
+ {
+ CLbtTriggerFilterBase* filter = iListOptions->Filter();
+ delete filter;
+ }
+ delete iListOptions;
+ delete iFilter;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CLbtContainerListOptions::TriggerEntry()
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CLbtListTriggerOptions* CLbtContainerListOptions::ListOptions()
+ {
+ return iListOptions;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CLbtContainerListOptions::SetTriggerEntry()
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CLbtContainerListOptions::SetListOptions(
+ CLbtListTriggerOptions* aListOptions )
+ {
+ if ( iListOptions )
+ {
+ delete iListOptions;
+ }
+ iListOptions = aListOptions;
+ }
+
+
+
+
+// ---------------------------------------------------------------------------
+// CLbtContainerListOptions::DerivedInfo()
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CLbtContainerFilter* CLbtContainerListOptions::ContainerFilter()
+ {
+ return iFilter;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CLbtContainerListOptions::SetDerivedInfo()
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CLbtContainerListOptions::SetContainerFilter(
+ CLbtContainerFilter* aFilter )
+ {
+ if ( iFilter )
+ {
+ delete iFilter;
+ }
+ iFilter = aFilter;
+ }
+
+
+EXPORT_C TLbtTriggerDataMask CLbtContainerListOptions::DataMask()
+ {
+ return iMask;
+ }
+
+EXPORT_C void CLbtContainerListOptions::SetDataMask( TLbtTriggerDataMask aMask)
+ {
+ iMask=aMask;
+ }
+// ---------------------------------------------------------------------------
+// Constructor
+//
+// ---------------------------------------------------------------------------
+//
+CLbtContainerListOptions::CLbtContainerListOptions()
+ {
+ iListOptions = NULL;
+ iFilter = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// Clone method
+//
+// ---------------------------------------------------------------------------
+//
+void CLbtContainerListOptions::CloneL(CLbtContainerListOptions& /*aEntry*/)
+ {
+/* CLbtTriggerEntry::TType trigType;
+ trigType=aEntry.TriggerEntry()->Type();
+ CLbtTriggerEntry* trigEntry=aEntry.TriggerEntry();
+ CLbtTriggerConditionBase* trigCondition= trigEntry->GetCondition();
+ TLbtTriggerDynamicInfo* dynInfo=aEntry.DynInfo();
+ CLbtExtendedTriggerInfo* extInfo=aEntry.ExtendedTriggerInfo();
+ CLbtGeoAreaBase* trigArea;
+
+ if(trigType==CLbtTriggerEntry::ETypeSession)
+ {
+ iEntry=CLbtSessionTrigger::NewL();
+ iEntry->SetId(trigEntry->Id());
+ iEntry->SetNameL(trigEntry->Name());
+ iEntry->SetManagerUi(trigEntry->ManagerUi());
+ iEntry->SetState(trigEntry->State());
+ if(trigCondition->Type() ==
+ CLbtTriggerConditionBase::ETriggerConditionArea)
+ {
+ CLbtTriggerConditionArea* cond =
+ (CLbtTriggerConditionArea*)trigCondition;
+ CLbtTriggerConditionArea* trigCondArea =
+ CLbtTriggerConditionArea::NewL();
+ trigCondArea->SetDirection(cond->Direction());
+ CLbtGeoAreaBase* areaBase=cond->TriggerArea();
+ if( areaBase->Type() == CLbtGeoAreaBase::ECircle )
+ {
+ CLbtGeoCircle* areaCircle=(CLbtGeoCircle*) areaBase;
+ trigArea=CLbtGeoCircle::NewL(areaCircle->Center(),
+ areaCircle->Radius());
+ trigCondArea->SetTriggerArea(trigArea);
+ }
+ else if(areaBase->Type()==CLbtGeoAreaBase::ERectangular)
+ {
+ CLbtGeoRect* areaRect=(CLbtGeoRect*)areaBase;
+ TReal southLat,northLat,eastLong,westLong;
+ areaRect->GetBorder(southLat,northLat,westLong,eastLong);
+ trigArea=CLbtGeoRect::NewL(southLat,
+ northLat,
+ westLong,
+ eastLong);
+ trigCondArea->SetTriggerArea(trigArea);
+ }
+ iEntry->SetCondition(trigCondArea);
+ }
+ }
+ else
+ {
+ iEntry=CLbtStartupTrigger::NewL();
+ }
+ iDynInfo=new TLbtTriggerDynamicInfo;
+ iDynInfo->iValidity=dynInfo->iValidity;
+ iDynInfo->iActivityStatus=dynInfo->iActivityStatus;
+ iDynInfo->iDistanceToLatestLocation=dynInfo->iDistanceToLatestLocation;
+
+ iExtendedTriggerInfo = CLbtExtendedTriggerInfo::NewL();
+
+ iExtendedTriggerInfo->SetTriggerRectangleArea(extInfo->TriggerReactangleArea()) ;
+ iExtendedTriggerInfo->SetHysteresisRadius(extInfo->HysteresisRadius());
+ iExtendedTriggerInfo->SetTriggerFiredState(extInfo->IsTriggerFired());
+// iExtendedTriggerInfo->SetStrategyDataL(extInfo->StategyData());
+ iExtendedTriggerInfo->SetOwnerSid(extInfo->OwnerSid());*/
+ }
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase of Construction
+//
+// ---------------------------------------------------------------------------
+//
+void CLbtContainerListOptions::ConstructL()
+ {
+ ConstructL(NULL,NULL);
+ }
+
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase of Construction
+//
+// ---------------------------------------------------------------------------
+//
+void CLbtContainerListOptions::ConstructL(
+ CLbtListTriggerOptions* aListOptions,
+ CLbtContainerFilter* aFilter)
+ {
+ iListOptions = aListOptions;
+ iFilter = aFilter;
+ }
+