--- /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
+