locationsystemui/locationsysui/possettings/possuplsettingsplugin/src/possuplsettingsengineprivate.cpp
branchRCL_3
changeset 44 2b4ea9893b66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/possettings/possuplsettingsplugin/src/possuplsettingsengineprivate.cpp	Tue Aug 31 15:37:04 2010 +0300
@@ -0,0 +1,259 @@
+/*
+ * Copyright (c) 2010 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:  Implementation of positioning settings engine private class.
+ *
+ */
+#include "possuplsettingsengineprivate.h"
+
+#include <epos_csuplsettings.h>
+#include <epos_csuplsettingparams.h>
+#include <QDebug>
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::PosSuplSettingsEnginePrivate()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+PosSuplSettingsEnginePrivate::PosSuplSettingsEnginePrivate() :
+    mPosSuplSettingsObserver(NULL), mSuplSettings(NULL)
+    {
+    QT_TRAP_THROWING( mSuplSettings = CSuplSettings::NewL();
+            mSuplSettings->SetObserverL(*this);
+    );
+    }
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::~PosSuplSettingsEnginePrivate()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+PosSuplSettingsEnginePrivate::~PosSuplSettingsEnginePrivate()
+    {
+    
+    
+    mServerList.ResetAndDestroy();    
+    
+    if (mSuplSettings)
+        {
+        mSuplSettings->RemoveObserver();
+        delete mSuplSettings;
+        mSuplSettings = NULL;
+        }
+    }
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::GetServerList()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+int PosSuplSettingsEnginePrivate::GetServerList(
+        QList<PosServerParams> & aParamValues)
+    {
+    TInt64 slpId;
+    HBufC* serverAddress = HBufC::New(KMaxHSLPAddrLen);
+    HBufC* iapName = HBufC::New(KMaxIAPLen);
+    TBool serverEnabled;
+    TBool simChangeRemove;
+    TBool usageInHomeNw;
+    TBool editable;
+
+    if (!serverAddress || !iapName)
+        {
+        delete serverAddress;
+        delete iapName;
+        return KErrNoMemory;
+        }
+    
+    mServerList.ResetAndDestroy();
+
+    TInt error = mSuplSettings->GetAllSlp(mServerList); //handle return value...
+    if (error!=KErrNone)
+        {
+        delete serverAddress;
+        delete iapName;
+        mServerList.Close();
+        mServerList.ResetAndDestroy();
+        return error;
+        }
+    
+    TInt count = mServerList.Count();
+    for(TInt i = 0; i < count; ++i )
+        {        
+        PosServerParams params;
+        error = mServerList[i]->Get(
+                            slpId,
+                            serverAddress->Des(),
+                            iapName->Des(),
+                            serverEnabled,
+                            simChangeRemove,
+                            usageInHomeNw,
+                            editable);
+                            
+        if (error == 0)
+            {
+//            QString sName((QChar*) (serverAddress->Ptr()),
+//                    serverAddress->Length());            
+            
+            QString sName = QString::fromUtf16(serverAddress->Ptr(), serverAddress->Length()); 
+            
+            params.slpId = slpId;
+            params.serverAdd = sName;
+            params.serverEnabled =  serverEnabled;
+            
+            aParamValues.append(params);
+            }
+        }
+    
+    delete serverAddress;
+    delete iapName; 
+
+    return KErrNone;
+    }
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::SetServerStatus()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+int PosSuplSettingsEnginePrivate::SetServerStatus(int aSlpId, bool aEnableFlg)
+    {
+    return (mSuplSettings->SetServerEnabledFlag(aSlpId, aEnableFlg));
+    }
+
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::RemoveServer()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+int PosSuplSettingsEnginePrivate::RemoveServer(int aSlpId)
+    {
+    return (mSuplSettings->RemoveServer(aSlpId));
+    }
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::GetRemovableServerList()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+int PosSuplSettingsEnginePrivate::GetRemovableServerList(QList<
+        PosServerParams>& aParamValues)
+    {
+    qDebug() << "+  PosSuplSettingsEnginePrivate::getRemovableServerList()";
+    TInt64 slpId;
+    HBufC* serverAddress = HBufC::New(KMaxHSLPAddrLen);
+    HBufC* iapName = HBufC::New(KMaxIAPLen);
+    TBool serverEnabled;
+    TBool simChangeRemove;
+    TBool usageInHomeNw;
+    TBool editable;
+    TBool productConfigured;
+
+    if (!serverAddress || !iapName)
+        {
+        delete serverAddress;
+        delete iapName;
+        return KErrNoMemory;
+        }
+    
+    mServerList.ResetAndDestroy();
+
+    TInt error = mSuplSettings->GetAllSlp(mServerList); //handle return value...
+    if (error!=KErrNone)
+        {
+        delete serverAddress;
+        delete iapName;
+        mServerList.Close();
+        mServerList.ResetAndDestroy();
+        return error;
+        }
+    
+    TInt count = mServerList.Count();
+    qDebug() << "Deleteable server list count = " << count;
+    for(TInt i = 0; i < count; ++i )
+        {        
+
+        PosServerParams params;
+        error = mServerList[i]->Get(slpId,
+                                    serverAddress->Des(),
+                                    iapName->Des(),
+                                    serverEnabled,
+                                    simChangeRemove,
+                                    usageInHomeNw,
+                                    editable);
+         TInt err = mServerList[i]->GetServerConfigurationType(productConfigured);
+         qDebug()<< "GetServerConfigurationType returns error = "<< err;                   
+        if (error == 0)
+            {
+           QString sName = QString::fromUtf16(serverAddress->Ptr(), serverAddress->Length()); 
+            
+            params.slpId = slpId;
+            params.serverAdd = sName;
+            params.serverEnabled =  serverEnabled;
+            
+            if (!productConfigured)
+                {
+                aParamValues.append(params);
+                }            
+            }
+        }
+    
+    delete serverAddress;
+    delete iapName; 
+    qDebug() << "-  PosSuplSettingsEnginePrivate::getRemovableServerList()";
+    return KErrNone;
+
+    }
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::SetObserver()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+int PosSuplSettingsEnginePrivate::SetObserver(
+        PosSuplSettingsChangeObserver* aObserver)
+    {
+    TInt ret;
+    if (!mPosSuplSettingsObserver)
+        {
+        mPosSuplSettingsObserver = aObserver;
+        ret = KErrNone;
+        }
+    else
+        {
+        ret = KErrAlreadyExists;
+        }
+    return ret;
+    }
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::HandleSuplSettingsChangeL()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+void PosSuplSettingsEnginePrivate::HandleSuplSettingsChangeL(
+        MSuplSettingsObserver::TSuplSettingsEventType aEvent, TInt aSlpId)
+    {
+    if (aEvent == MSuplSettingsObserver::ESuplSettingsDBAddEvent || aEvent
+            == MSuplSettingsObserver::ESuplSettingsDBDeleteEvent)
+        {
+        if (mPosSuplSettingsObserver)
+            {
+            mPosSuplSettingsObserver->handleSuplSettingsChange(aEvent, aSlpId);
+            }
+        }
+    }
+
+//---------------------------------------------------------------------
+// PosSuplSettingsEnginePrivate::HandleSuplTriggerStatusChangeL()
+// (other items were commented in a header).
+//---------------------------------------------------------------------
+void PosSuplSettingsEnginePrivate::HandleSuplTriggerStatusChangeL(
+        CSuplSettings::TSuplTriggerStatus /*aSuplTriggerStatus*/)
+    {
+    }
+
+// End of file