diff -r 000000000000 -r 667063e416a2 locationtriggering/ltcontainer/src/lbtcontainerlistoptions.cpp --- /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 + +#include "lbtcontainerlistoptions.h" +#include "lbtcontainertriggerfilter.h" +#include +#include +#include +#include +#include +#include +#include +#include + +// ======== 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; + } +