supl/locationsuplfw/settingsapi/src/epos_csuplsettingparams.cpp
changeset 0 667063e416a2
child 22 4c4ed41530db
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettingparams.cpp	Tue Feb 02 01:06:48 2010 +0200
@@ -0,0 +1,312 @@
+/*
+* Copyright (c) 2005 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 class CServerParams with get and set methods for Server params
+*
+*/
+
+
+
+// INCLUDE FILES
+
+#include "epos_csuplsettingparams.h"
+#include "epos_csuplsettingsconstants.h"
+
+// CONSTANTS
+
+// ==================== LOCAL FUNCTIONS ====================
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CServerParams::CServerParams():iSlpId (-1),       
+                                        iServerAddress (NULL),
+                                        iIap (NULL), 
+                                        iServerEnabled(ETrue),                                            
+                                        iSimChangeRemove  (ETrue),
+                                        iUsageInHomeNw (ETrue),
+                                        iEditable (ETrue),
+                                        
+                                        iIsValueSet(EFalse)
+    {
+
+    }
+
+EXPORT_C CServerParams* CServerParams::NewL()
+    {
+    CServerParams* self = new (ELeave) CServerParams();
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+EXPORT_C CServerParams* CServerParams::NewLC()
+    {
+    CServerParams* self = new (ELeave) CServerParams();
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+
+// EPOC default constructor can leave.
+void CServerParams::ConstructL()
+    {
+      
+    }
+
+// Destructor
+EXPORT_C  CServerParams::~CServerParams()
+    {
+    if(iServerAddress)
+        {
+        delete iServerAddress;
+        iServerAddress = NULL;
+        }
+
+    if(iIap)
+        {
+        delete iIap;
+        iIap = NULL;
+        }
+
+    }
+// ---------------------------------------------------------------------------
+// CServerParams::Set()
+//
+// Sets server parameters.
+// ---------------------------------------------------------------------------
+EXPORT_C TInt CServerParams::Set( const TDesC& aServerAddress,          
+                const TDesC& aIapName, const TBool aServerEnabled,
+                const TBool aSimChangeRemove, const TBool aUsageInHomeNw,
+                const TBool aEditable,const TInt64 aSlpId)
+    {
+    iSlpId = aSlpId;
+    if(aServerAddress.Length() > 0 && aServerAddress.Length() < KMaxHSLPAddrLen)
+        {
+        delete iServerAddress;
+        iServerAddress = NULL;
+        iServerAddress = HBufC::New(aServerAddress.Length());
+        if(iServerAddress)
+            iServerAddress->Des().Copy(aServerAddress);
+        else
+            return KErrNoMemory;
+        }
+    else
+        return KErrArgument;
+        
+    if(aIapName.Length() > 0 && aIapName.Length() < KMaxIAPLen)
+        {
+        delete iIap;
+        iIap = NULL;
+        iIap = HBufC::New(aIapName.Length());
+        if(iIap)
+            iIap->Des().Copy(aIapName);
+        else
+            return KErrNoMemory;
+        }
+    else if(aIapName.Length() > 0) //zero length allowed in some cases
+        return KErrArgument;
+    
+    iServerEnabled = aServerEnabled;
+    iSimChangeRemove = aSimChangeRemove;
+    iUsageInHomeNw = aUsageInHomeNw;
+    iEditable = aEditable;
+    
+    iIsValueSet = ETrue;
+    return KErrNone;            
+    }
+// ---------------------------------------------------------------------------
+// CServerParams::Get()
+//
+// Returns server parameters.
+// ---------------------------------------------------------------------------
+EXPORT_C TInt CServerParams::Get(TInt64 &aSlpId, TPtr aServerAddress,         
+                TPtr aIapName,TBool& aServerEnabled,
+                TBool& aSimChangeRemove, TBool& aUsageInHomeNw, TBool& aEditable) const
+    {
+    if(!iIsValueSet) //if values were not set before using the Set method, return error
+        return KErrNotFound;
+    
+    aSlpId = iSlpId;
+    
+    if(iServerAddress)
+        aServerAddress = iServerAddress->Des();
+    else
+        return KErrNotFound;
+    if(iIap)
+        aIapName = iIap->Des();
+    else
+        aIapName.Zero();
+    aServerEnabled = iServerEnabled;
+    aSimChangeRemove = iSimChangeRemove;
+    aUsageInHomeNw = iUsageInHomeNw;
+    aEditable = iEditable;
+    return KErrNone;            
+    }
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CTriggerParams::CTriggerParams(): iSessionId (0), 
+                                  iSessionName(NULL),
+                                  iNotificationPresent(EFalse),
+                                  iTriggerNotificationStatus(EFalse),
+                                  iTriggerType(EUnknown), 
+                                  iRequestType(EUnSpecified),
+                                  iOutstandingTrigger(0),                                            
+                                  iInterval(0),
+                                  iIsValueSet(EFalse)
+    {
+
+    }
+
+EXPORT_C CTriggerParams* CTriggerParams::NewL()
+    {
+    CTriggerParams* self = new (ELeave) CTriggerParams();
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+EXPORT_C CTriggerParams* CTriggerParams::NewLC()
+    {
+    CTriggerParams* self = new (ELeave) CTriggerParams();
+
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+// EPOC default constructor can leave.
+void CTriggerParams::ConstructL()
+    {
+      
+    }
+
+// Destructor
+EXPORT_C  CTriggerParams::~CTriggerParams()
+    {
+    delete iSessionName;
+    iSessionName = NULL;
+    
+    }
+// ---------------------------------------------------------------------------
+// CTriggerParams::Set()
+//
+// Sets server parameters.
+// ---------------------------------------------------------------------------
+EXPORT_C TInt CTriggerParams::Set( TInt64 aSessionId,
+                                   const TDesC& aSessionName,
+                                   TBool aNotificationPresent,
+                				   TBool aTriggerNotificationStatus,
+                				   TTriggerType aTriggerType,
+                				   TRequestType aRequestType,
+                				   TUint64  aOutstandingTrigger,
+                				   TUint64  aInterval
+                                  )
+    {
+    if(aSessionName.Length() > 0 && aSessionName.Length() < KMaxTriggerSessionNameLen)
+        {
+        delete iSessionName;
+        iSessionName = NULL;
+        iSessionName = HBufC::New(aSessionName.Length());
+        if(iSessionName)
+            {
+            iSessionName->Des().Copy(aSessionName);
+            }
+        else
+            {
+            return KErrNoMemory;
+            }
+        }
+    else if ( aSessionName.Length() == 0 )
+        {
+        // Set it to NULL & proceed.
+        iSessionName = NULL;
+        }
+    else // Length must be > KMaxTriggerSessionNameLen
+        {
+        return KErrArgument;
+        }
+    
+    iSessionId = aSessionId;
+    iNotificationPresent = aNotificationPresent;
+    iTriggerNotificationStatus = aTriggerNotificationStatus;
+    iTriggerType = aTriggerType;
+    iRequestType = aRequestType;
+    iOutstandingTrigger = aOutstandingTrigger;
+    iInterval = aInterval;
+    iIsValueSet = ETrue;
+    return KErrNone;            
+    }
+// ---------------------------------------------------------------------------
+// CTriggerParams::Get()
+//
+// Returns server parameters.
+// ---------------------------------------------------------------------------
+EXPORT_C TInt CTriggerParams::Get( TInt64& aSessionId,
+                                   TPtr aSessionName,
+                                   TBool& aNotificationPresent,
+                				   TBool& aTriggerNotificationStatus,
+                				   TTriggerType& aTriggerType,
+                				   TRequestType& aRequestType,
+                				   TUint64&  aOutstandingTrigger,
+                                   TUint64&  aInterval
+                                  ) const
+    {
+    if( !iIsValueSet )//if values were not set before using the Set method, return error
+        {
+        return KErrNotFound;
+        }
+    if( iSessionName )
+        {
+        if( aSessionName.Ptr() == NULL )
+            {
+            return KErrArgument;
+            }
+        if( iSessionName->Length() > aSessionName.MaxLength() )
+            {
+            return KErrOverflow;
+            }
+        aSessionName = iSessionName->Des();
+        }
+    else
+        {
+        aSessionName.Zero();
+        }
+    aSessionId = iSessionId;
+    aNotificationPresent = iNotificationPresent;
+    aTriggerNotificationStatus = iTriggerNotificationStatus;
+    aTriggerType = iTriggerType;
+    aRequestType = iRequestType;
+    aOutstandingTrigger = iOutstandingTrigger;
+    aInterval = iInterval;
+    return KErrNone;            
+    }
+
+//  End of File
+