diff -r 000000000000 -r dfb7c4ff071f commsconfig/commsdatabaseshim/commdbshim/SCDB/CDBSTORE.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsconfig/commsdatabaseshim/commdbshim/SCDB/CDBSTORE.CPP Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,196 @@ +// Copyright (c) 2006-2009 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: +// CStoreableOverrideSettings class definitions +// +// + +/** + @file + @deprecated since v9.1. Functionality is replaced with commsdat. +*/ + +#include +#include "OVERRIDE.H" + +namespace commdb_dll + { +/** +Maximum size of the store +@internalComponent +*/ +const TInt KStoreExpandSize=100; + } +using namespace commdb_dll; + + +EXPORT_C CStoreableOverrideSettings* CStoreableOverrideSettings::NewL(TParamList aParamList) +/** Allocates and constructs a storable override settings object. + +The construction process automatically opens the communications database and +connects to the DBMS. The database is closed and the connection to the DBMS +severed when this override object is destroyed + +This member function was withdrawn in release 6.0, but re-introduced in 7.0 + +@param aParamList An enumerator which indicates whether the override settings +are partial or full. +@return A pointer to the override settings object. */ + { + CStoreableOverrideSettings* r=new(ELeave) CStoreableOverrideSettings(aParamList); + CleanupStack::PushL(r); + r->ConstructL(); + CleanupStack::Pop(r); + return r; + } + +EXPORT_C CStoreableOverrideSettings* CStoreableOverrideSettings::NewL(TParamList aParamList, TCommDbDatabaseType /*aDbType*/) +/** Allocates and constructs a storable override settings object. + +The construction process automatically opens the communications database and +connects to the DBMS. The database is closed and the connection to the DBMS +severed when this override object is destroyed + +Re-instated override variant of NewL function in order to maintain BC with 6.1. +Disgards a TCommDbDatabaseType value and calls NewL(TParamList aParamList). + +@param aParamList +@param aDbType Whether Database is IAP or ISP version. All Db's are IAP type now. +@return CCommDbOverrideSettings* the calling function takes ownership of the returned object/ +*/ + { + return CStoreableOverrideSettings::NewL(aParamList); + } + +CStoreableOverrideSettings::CStoreableOverrideSettings(TParamList aParamList) + : CCommDbOverrideSettings(aParamList) +/** Constructor +@internalAll */ + {} + +void CStoreableOverrideSettings::ConstructL() + { + iStore=CBufStore::NewL(KStoreExpandSize); + CCommDbOverrideSettings::ConstructL(); + } + +EXPORT_C CStoreableOverrideSettings::~CStoreableOverrideSettings() +/** Frees all resources owned by this object, prior to its destruction. + +Specifically, it deletes the memory store. */ + { + delete iStore; + } + +EXPORT_C void CStoreableOverrideSettings::ExternalizeL(RWriteStream& aStream) const +/** Externalises override settings to a stream. + +@param aStream The stream to write to. */ + { + TInt i; + TInt count; + + count = iOverrides.Count(); + aStream.WriteUint32L(count); + for (i=0; iExternalizeL(aStream); + } + count = iIapOverrides.Count(); + aStream.WriteUint32L(count); + for (i=0; iInternalizeL(aStream); + User::LeaveIfError(iOverrides.Append(override)); + CleanupStack::Pop(); // override + } + count=aStream.ReadUint32L(); + for (i=0; i < count; i++) + { + TCommDbIapConnectionPrefOverride override; + override.InternalizeL(aStream); + User::LeaveIfError(iIapOverrides.Append(override)); + } + } + +EXPORT_C CBufFlat* CStoreableOverrideSettings::StoreLC() +/** Constructs a flat buffer and stores the override settings in it. + +The function returns a pointer to the buffer; the pointer to this object is +placed on the cleanup stack. + +@return A pointer to a flat buffer in which this object is stored. */ + { + CBufFlat* buf=CBufFlat::NewL(256); // expand size = 256 + CleanupStack::PushL(buf); + RBufWriteStream strm(*buf); + strm << *this; + strm.CommitL(); + return buf; + } + +EXPORT_C void CStoreableOverrideSettings::RestoreL(HBufC8* aBuf) +/** Restores the override settings from the buffer memory store hosted by the specified +8-bit descriptor. + +@param aBuf A pointer to an 8 bit memory descriptor containing the data to +be restored. */ + { + RDesReadStream strm(*aBuf); // turn it into a stream + strm >> *this; // re-construct arrays + }