locationsystemui/locationsysui/possettings/possuplsettingsplugin/src/possuplsettingsengineprivate.cpp
branchRCL_3
changeset 44 2b4ea9893b66
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
       
     1 /*
       
     2  * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Nokia Corporation - initial contribution.
       
    11  *
       
    12  * Contributors:
       
    13  *
       
    14  * Description:  Implementation of positioning settings engine private class.
       
    15  *
       
    16  */
       
    17 #include "possuplsettingsengineprivate.h"
       
    18 
       
    19 #include <epos_csuplsettings.h>
       
    20 #include <epos_csuplsettingparams.h>
       
    21 #include <QDebug>
       
    22 
       
    23 //---------------------------------------------------------------------
       
    24 // PosSuplSettingsEnginePrivate::PosSuplSettingsEnginePrivate()
       
    25 // (other items were commented in a header).
       
    26 //---------------------------------------------------------------------
       
    27 PosSuplSettingsEnginePrivate::PosSuplSettingsEnginePrivate() :
       
    28     mPosSuplSettingsObserver(NULL), mSuplSettings(NULL)
       
    29     {
       
    30     QT_TRAP_THROWING( mSuplSettings = CSuplSettings::NewL();
       
    31             mSuplSettings->SetObserverL(*this);
       
    32     );
       
    33     }
       
    34 
       
    35 //---------------------------------------------------------------------
       
    36 // PosSuplSettingsEnginePrivate::~PosSuplSettingsEnginePrivate()
       
    37 // (other items were commented in a header).
       
    38 //---------------------------------------------------------------------
       
    39 PosSuplSettingsEnginePrivate::~PosSuplSettingsEnginePrivate()
       
    40     {
       
    41     
       
    42     
       
    43     mServerList.ResetAndDestroy();    
       
    44     
       
    45     if (mSuplSettings)
       
    46         {
       
    47         mSuplSettings->RemoveObserver();
       
    48         delete mSuplSettings;
       
    49         mSuplSettings = NULL;
       
    50         }
       
    51     }
       
    52 
       
    53 //---------------------------------------------------------------------
       
    54 // PosSuplSettingsEnginePrivate::GetServerList()
       
    55 // (other items were commented in a header).
       
    56 //---------------------------------------------------------------------
       
    57 int PosSuplSettingsEnginePrivate::GetServerList(
       
    58         QList<PosServerParams> & aParamValues)
       
    59     {
       
    60     TInt64 slpId;
       
    61     HBufC* serverAddress = HBufC::New(KMaxHSLPAddrLen);
       
    62     HBufC* iapName = HBufC::New(KMaxIAPLen);
       
    63     TBool serverEnabled;
       
    64     TBool simChangeRemove;
       
    65     TBool usageInHomeNw;
       
    66     TBool editable;
       
    67 
       
    68     if (!serverAddress || !iapName)
       
    69         {
       
    70         delete serverAddress;
       
    71         delete iapName;
       
    72         return KErrNoMemory;
       
    73         }
       
    74     
       
    75     mServerList.ResetAndDestroy();
       
    76 
       
    77     TInt error = mSuplSettings->GetAllSlp(mServerList); //handle return value...
       
    78     if (error!=KErrNone)
       
    79         {
       
    80         delete serverAddress;
       
    81         delete iapName;
       
    82         mServerList.Close();
       
    83         mServerList.ResetAndDestroy();
       
    84         return error;
       
    85         }
       
    86     
       
    87     TInt count = mServerList.Count();
       
    88     for(TInt i = 0; i < count; ++i )
       
    89         {        
       
    90         PosServerParams params;
       
    91         error = mServerList[i]->Get(
       
    92                             slpId,
       
    93                             serverAddress->Des(),
       
    94                             iapName->Des(),
       
    95                             serverEnabled,
       
    96                             simChangeRemove,
       
    97                             usageInHomeNw,
       
    98                             editable);
       
    99                             
       
   100         if (error == 0)
       
   101             {
       
   102 //            QString sName((QChar*) (serverAddress->Ptr()),
       
   103 //                    serverAddress->Length());            
       
   104             
       
   105             QString sName = QString::fromUtf16(serverAddress->Ptr(), serverAddress->Length()); 
       
   106             
       
   107             params.slpId = slpId;
       
   108             params.serverAdd = sName;
       
   109             params.serverEnabled =  serverEnabled;
       
   110             
       
   111             aParamValues.append(params);
       
   112             }
       
   113         }
       
   114     
       
   115     delete serverAddress;
       
   116     delete iapName; 
       
   117 
       
   118     return KErrNone;
       
   119     }
       
   120 
       
   121 //---------------------------------------------------------------------
       
   122 // PosSuplSettingsEnginePrivate::SetServerStatus()
       
   123 // (other items were commented in a header).
       
   124 //---------------------------------------------------------------------
       
   125 int PosSuplSettingsEnginePrivate::SetServerStatus(int aSlpId, bool aEnableFlg)
       
   126     {
       
   127     return (mSuplSettings->SetServerEnabledFlag(aSlpId, aEnableFlg));
       
   128     }
       
   129 
       
   130 
       
   131 //---------------------------------------------------------------------
       
   132 // PosSuplSettingsEnginePrivate::RemoveServer()
       
   133 // (other items were commented in a header).
       
   134 //---------------------------------------------------------------------
       
   135 int PosSuplSettingsEnginePrivate::RemoveServer(int aSlpId)
       
   136     {
       
   137     return (mSuplSettings->RemoveServer(aSlpId));
       
   138     }
       
   139 
       
   140 //---------------------------------------------------------------------
       
   141 // PosSuplSettingsEnginePrivate::GetRemovableServerList()
       
   142 // (other items were commented in a header).
       
   143 //---------------------------------------------------------------------
       
   144 int PosSuplSettingsEnginePrivate::GetRemovableServerList(QList<
       
   145         PosServerParams>& aParamValues)
       
   146     {
       
   147     qDebug() << "+  PosSuplSettingsEnginePrivate::getRemovableServerList()";
       
   148     TInt64 slpId;
       
   149     HBufC* serverAddress = HBufC::New(KMaxHSLPAddrLen);
       
   150     HBufC* iapName = HBufC::New(KMaxIAPLen);
       
   151     TBool serverEnabled;
       
   152     TBool simChangeRemove;
       
   153     TBool usageInHomeNw;
       
   154     TBool editable;
       
   155     TBool productConfigured;
       
   156 
       
   157     if (!serverAddress || !iapName)
       
   158         {
       
   159         delete serverAddress;
       
   160         delete iapName;
       
   161         return KErrNoMemory;
       
   162         }
       
   163     
       
   164     mServerList.ResetAndDestroy();
       
   165 
       
   166     TInt error = mSuplSettings->GetAllSlp(mServerList); //handle return value...
       
   167     if (error!=KErrNone)
       
   168         {
       
   169         delete serverAddress;
       
   170         delete iapName;
       
   171         mServerList.Close();
       
   172         mServerList.ResetAndDestroy();
       
   173         return error;
       
   174         }
       
   175     
       
   176     TInt count = mServerList.Count();
       
   177     qDebug() << "Deleteable server list count = " << count;
       
   178     for(TInt i = 0; i < count; ++i )
       
   179         {        
       
   180 
       
   181         PosServerParams params;
       
   182         error = mServerList[i]->Get(slpId,
       
   183                                     serverAddress->Des(),
       
   184                                     iapName->Des(),
       
   185                                     serverEnabled,
       
   186                                     simChangeRemove,
       
   187                                     usageInHomeNw,
       
   188                                     editable);
       
   189          TInt err = mServerList[i]->GetServerConfigurationType(productConfigured);
       
   190          qDebug()<< "GetServerConfigurationType returns error = "<< err;                   
       
   191         if (error == 0)
       
   192             {
       
   193            QString sName = QString::fromUtf16(serverAddress->Ptr(), serverAddress->Length()); 
       
   194             
       
   195             params.slpId = slpId;
       
   196             params.serverAdd = sName;
       
   197             params.serverEnabled =  serverEnabled;
       
   198             
       
   199             if (!productConfigured)
       
   200                 {
       
   201                 aParamValues.append(params);
       
   202                 }            
       
   203             }
       
   204         }
       
   205     
       
   206     delete serverAddress;
       
   207     delete iapName; 
       
   208     qDebug() << "-  PosSuplSettingsEnginePrivate::getRemovableServerList()";
       
   209     return KErrNone;
       
   210 
       
   211     }
       
   212 
       
   213 //---------------------------------------------------------------------
       
   214 // PosSuplSettingsEnginePrivate::SetObserver()
       
   215 // (other items were commented in a header).
       
   216 //---------------------------------------------------------------------
       
   217 int PosSuplSettingsEnginePrivate::SetObserver(
       
   218         PosSuplSettingsChangeObserver* aObserver)
       
   219     {
       
   220     TInt ret;
       
   221     if (!mPosSuplSettingsObserver)
       
   222         {
       
   223         mPosSuplSettingsObserver = aObserver;
       
   224         ret = KErrNone;
       
   225         }
       
   226     else
       
   227         {
       
   228         ret = KErrAlreadyExists;
       
   229         }
       
   230     return ret;
       
   231     }
       
   232 
       
   233 //---------------------------------------------------------------------
       
   234 // PosSuplSettingsEnginePrivate::HandleSuplSettingsChangeL()
       
   235 // (other items were commented in a header).
       
   236 //---------------------------------------------------------------------
       
   237 void PosSuplSettingsEnginePrivate::HandleSuplSettingsChangeL(
       
   238         MSuplSettingsObserver::TSuplSettingsEventType aEvent, TInt aSlpId)
       
   239     {
       
   240     if (aEvent == MSuplSettingsObserver::ESuplSettingsDBAddEvent || aEvent
       
   241             == MSuplSettingsObserver::ESuplSettingsDBDeleteEvent)
       
   242         {
       
   243         if (mPosSuplSettingsObserver)
       
   244             {
       
   245             mPosSuplSettingsObserver->handleSuplSettingsChange(aEvent, aSlpId);
       
   246             }
       
   247         }
       
   248     }
       
   249 
       
   250 //---------------------------------------------------------------------
       
   251 // PosSuplSettingsEnginePrivate::HandleSuplTriggerStatusChangeL()
       
   252 // (other items were commented in a header).
       
   253 //---------------------------------------------------------------------
       
   254 void PosSuplSettingsEnginePrivate::HandleSuplTriggerStatusChangeL(
       
   255         CSuplSettings::TSuplTriggerStatus /*aSuplTriggerStatus*/)
       
   256     {
       
   257     }
       
   258 
       
   259 // End of file