--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/locverifier/src/lpdsuplsettingsadapter.cpp Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,147 @@
+/*
+* 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: Adapter to the SUPL Settings API
+*
+*/
+
+
+// System Includes
+#include <epos_csuplsettings.h>
+#include <locsuplsettingsui.rsg>
+#include <StringLoader.h>
+
+// User Includes
+#include "lpdsuplsettingsadapter.h"
+#include "lpdsuplsettingsadapterobserver.h"
+
+
+// ---------------------------------------------------------------------------
+// Private Constructor
+// ---------------------------------------------------------------------------
+//
+CLpdSUPLSettingsAdapter::CLpdSUPLSettingsAdapter(
+ MLpdSUPLSettingsAdapterObserver& aObserver )
+ :iObserver( aObserver )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CLpdSUPLSettingsAdapter::~CLpdSUPLSettingsAdapter()
+ {
+ // delete iTimer;
+ if( iSUPLSettings )
+ {
+ iSUPLSettings->RemoveSessionObserver();
+ }
+
+ delete iSUPLSettings;
+ iSUPLSettings = NULL;
+
+ }
+
+// ---------------------------------------------------------------------------
+// CLpdSUPLSettingsAdapter* CLpdSUPLSettingsAdapter::NewL
+// Static Two phase contructor that instantiates the CLpdSUPLSettingsAdapter
+//
+// @param aObserver Observer to the SUPL settings adapter
+// @return CLpdSUPLSettingsAdapter* Reference to the object created
+// ---------------------------------------------------------------------------
+//
+CLpdSUPLSettingsAdapter* CLpdSUPLSettingsAdapter::NewL(
+ MLpdSUPLSettingsAdapterObserver& aObserver )
+ {
+ CLpdSUPLSettingsAdapter* self =
+ new ( ELeave ) CLpdSUPLSettingsAdapter( aObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// void CLpdSUPLSettingsAdapter::ConstructL
+// Second phase of the two phase constructor
+// ---------------------------------------------------------------------------
+//
+void CLpdSUPLSettingsAdapter::ConstructL()
+ {
+ // Create the SUPL Settings
+ iSUPLSettings = CSuplSettings::NewL();
+
+ // Set the Observer for SUPL Sessions
+ iSUPLSettings->SetSessionObserverL( *this );
+
+ }
+
+// ---------------------------------------------------------------------------
+// void CLpdSUPLSettingsAdapter::HandleSuplSessionChangeL
+// Handle the Supl Session changes
+// ---------------------------------------------------------------------------
+//
+void CLpdSUPLSettingsAdapter::HandleSuplSessionChangeL(
+ TSuplSessionEventType aEvent,
+ TInt64 aSessionId
+ )
+ {
+ if( aEvent == MSuplSessionObserver::ESuplSessionDBUpdateEvent ||
+ aEvent == MSuplSessionObserver::ESuplSessionDBDeleteEvent )
+ {
+ iObserver.UpdateSessionL( aSessionId );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CLpdSUPLSettingsAdapter::GetSessionNameAndPeriodL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CLpdSUPLSettingsAdapter::GetTriggerPeriodL( TInt64 aSessionId, TUint& aTimePeriod )
+ {
+ CTriggerParams* trigParams = CTriggerParams::NewL();
+ CleanupStack::PushL( trigParams );
+
+ User::LeaveIfError( iSUPLSettings->GetTriggerParams( aSessionId, trigParams ) );
+
+ TUint64 outstandingTrigger;
+ TUint64 interval;
+ TBool notificationPresent;
+ TBool triggerNotificationStatus;
+ CTriggerParams::TTriggerType triggerType;
+ CTriggerParams::TRequestType requestType;
+
+ HBufC* sessionName;
+ sessionName = HBufC::NewLC( 256 );
+
+ sessionName->Des().Zero();
+
+ User::LeaveIfError( trigParams->Get(
+ aSessionId,
+ sessionName->Des(),
+ notificationPresent,
+ triggerNotificationStatus,
+ triggerType,
+ requestType,
+ outstandingTrigger,
+ interval) );
+
+ aTimePeriod = interval*outstandingTrigger;
+
+ CleanupStack::PopAndDestroy( ); // sessionName
+ CleanupStack::PopAndDestroy( ); // trigParams
+ }
+
+// End of file