diff -r 000000000000 -r 9cfd9a3ee49c datasourcemodules/locationapesuplpsy/src/suplpsyinfostoremanager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datasourcemodules/locationapesuplpsy/src/suplpsyinfostoremanager.cpp Tue Feb 02 01:50:39 2010 +0200 @@ -0,0 +1,240 @@ +/* +* Copyright (c) 2008 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: Store Manager in SUPL PSY. +* +*/ + + +// INCLUDE FILES + +#include "suplpsylogging.h" +#include "suplpsyinfostoremanager.h" +#include "suplpsycrkeys.h" + + +//const TUid KCRUidSuplFW = { 0x102750A0 }; +//const TUint32 KSuplFwCId = 0x0000000c; + +_LIT(KFileName,"\\private\\101F97b2\\SuplPsyLocationInfo.dat"); + +// ============================ MEMBER FUNCTIONS OF CSuplPsyInfoStoreManager =============================== + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::CSuplPsyInfoStoreManager,constructor +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// + +CSuplPsyInfoStoreManager::CSuplPsyInfoStoreManager() + : iRepoSuplPsy( NULL ), + iRepoSuplFw( NULL ) + { + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::ConstructL,two phase constuctor +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +void CSuplPsyInfoStoreManager::ConstructL() + { + TRACESTRING( "CSuplPsyInfoStoreManager::ConstructL start" ) + + TRACESTRING( "Opening Supl psy cenrep" ) + iRepoSuplPsy = CRepository::NewL( KCRUidSuplPsy ); + + + TRACESTRING( "Opening Supl fw cenrep" ) + // TODO put back + //iRepoSuplFw = CRepository::NewL( KCRUidSuplFW ); + + TRACESTRING( "Opening File server" ) + User::LeaveIfError( iFs.Connect() ); + iFs.CreatePrivatePath( EDriveC ); + + TRACESTRING( "Set session path" ) + User::LeaveIfError( iFs.SetSessionToPrivate( EDriveC ) ); + + TInt err = iFile.Open( iFs, KFileName, EFileRead|EFileWrite|EFileStream ); + if ( err ) + { + err = iFile.Create( iFs, KFileName, EFileRead|EFileWrite|EFileStream ); + TRACESTRING( "File didnt exist,file created" ) + } + User::LeaveIfError( err ); + TRACESTRING( "CSuplPsyInfoStoreManager::ConstructL end" ) + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::NewL,two phase constuctor +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +CSuplPsyInfoStoreManager* CSuplPsyInfoStoreManager::NewL() + { + CSuplPsyInfoStoreManager* self = new( ELeave ) CSuplPsyInfoStoreManager(); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::~CSuplPsyInfoStoreManager,Destructor +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +CSuplPsyInfoStoreManager::~CSuplPsyInfoStoreManager() + { + TRACESTRING( "CSuplPsyInfoStoreManager::~CSuplPsyInfoStoreManager start" ) + delete iRepoSuplPsy; + iRepoSuplPsy = NULL; + + delete iRepoSuplFw; + iRepoSuplFw = NULL; + + iFile.Close(); + iFs.Close(); + TRACESTRING( "CSuplPsyInfoStoreManager::~CSuplPsyInfoStoreManager end" ) + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::ReadSuplPsyLocationInfo,Reads stored Location Information from file. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CSuplPsyInfoStoreManager::ReadSuplPsyLocationInfo( HPositionGenericInfo& aPosInfo ) + { + TRACESTRING( "CSuplPsyInfoStoreManager::ReadSuplPsyLocationInfo start" ) + if ( iFs.Handle() && iFile.SubSessionHandle() ) + { + TPckg positionDes( aPosInfo ); + TInt pos = 0; + TInt seekErr = iFile.Seek( ESeekStart,pos ); + if( KErrNone != seekErr ) + { + return seekErr; + } + TInt err = iFile.Read( positionDes ); + if( KErrNone == err ) + { + TInt size = positionDes.Size(); + TRACESTRING2("pos data size=%d",size ) + if( positionDes.Size() > 0 ) + { + TRACESTRING( "File contains data" ) + return KErrNone; + } + TRACESTRING( "File doesnt contain any data" ) + return KErrNotFound; + } + return err; + } + + TRACESTRING( "CSuplPsyInfoStoreManager::ReadSuplPsyLocationInfo end" ) + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::WriteSuplPsyLocationInfo,Writes Location Information to file. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CSuplPsyInfoStoreManager::WriteSuplPsyLocationInfo( const HPositionGenericInfo& aPosInfo ) + { + TRACESTRING( "CSuplPsyInfoStoreManager::WriteSuplPsyLocationInfo start" ) + if ( iFs.Handle() && iFile.SubSessionHandle() ) + { + TPckg positionDes( aPosInfo ); + TInt err1 = iFile.Write( 0, positionDes ); + TInt err2 = iFile.Flush(); + + return ( err1 + err2 ); + } + TRACESTRING( "CSuplPsyInfoStoreManager::WriteSuplPsyLocationInfo end" ) + return KErrNotFound; + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::ReadSuplPsyCellIdInfo,Reads stored Cell Id Information from SUPL PSY CR Key. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CSuplPsyInfoStoreManager::ReadSuplPsyCellIdInfo( TCellIdInfo& aCellIdInfo ) + { + TRACESTRING( "CSuplPsyInfoStoreManager::ReadSuplPsyCellIdInfo start" ) + TPckg positionDes( aCellIdInfo ); + TInt err = iRepoSuplPsy->Get( KPSYCIdInfo,positionDes ); + TRACESTRING2("Read psy CR key error code=%d",err ) + + if( KErrNone == err) + { + if( positionDes.Size() > 0 ) + { + TRACESTRING( "CId data present" ) + return KErrNone; + } + + TRACESTRING( "No CId data" ) + return KErrNotFound; + } + + TRACESTRING( "CSuplPsyInfoStoreManager::ReadSuplPsyCellIdInfo end" ) + return err; + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::WriteSuplPsyCellIdInfo,Writes Cell Id Information to SUPL PSY CR Key. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CSuplPsyInfoStoreManager::WriteSuplPsyCellIdInfo( const TCellIdInfo& aCellIdInfo ) + { + TRACESTRING( "CSuplPsyInfoStoreManager::WriteSuplPsyCellIdInfo start" ) + TPckg positionDes( aCellIdInfo ); + return ( iRepoSuplPsy->Set( KPSYCIdInfo,positionDes ) ); + } + +// ----------------------------------------------------------------------------- +// CSuplPsyInfoStoreManager::ReadSuplFwCellIdInfo,Reads Cell Id Information from SUPL FW CR key. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt CSuplPsyInfoStoreManager::ReadSuplFwCellIdInfo( TCellIdInfo& /*aCellIdInfo*/ ) + { + return KErrNone; + //TODO temp removal put back + +// TRACESTRING( "CSuplPsyInfoStoreManager::ReadSuplFwCellIdInfoL start" ) +// TPckg positionDes( aCellIdInfo ); +// TInt err = iRepoSuplFw->Get( KSuplFwCId,positionDes ); +// TRACESTRING2("Read fw CR key error code=%d",err ) +// +// +// if( KErrNone == err) +// { +// if( positionDes.Size() > 0 ) +// { +// TRACESTRING( "CId data present" ) +// return KErrNone; +// } +// +// TRACESTRING( "No Cid data" ) +// return KErrNotFound; +// } +// +// TRACESTRING( "CSuplPsyInfoStoreManager::ReadSuplFwCellIdInfo end" ) +// return err; + } +// End of File