locationtriggering/ltcontainer/src/lbtcontainerlistoptions.cpp
changeset 0 667063e416a2
--- /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;
+    }
+