diff -r f5050f1da672 -r 04becd199f91 javamanager/javacaptain/extensionplugins/javacertstore/src.s60/metadatafilehandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javamanager/javacaptain/extensionplugins/javacertstore/src.s60/metadatafilehandler.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,93 @@ +/* +* Copyright (c) 2007-2007 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: +* +*/ + + +#include "metadatafilehandler.h" +#include + +namespace java +{ +namespace security +{ + +bool JavaCertStoreMetadataFileHandler::writeState(std::string aFilePath, int aState) +{ + int len = aFilePath.size(); + HBufC* filePath = HBufC::NewL(len); + CleanupStack::PushL(filePath); + TPtr ptr = filePath->Des(); + TPtr8 ptr8((unsigned char *)aFilePath.c_str(),len); + ptr8.SetLength(len); + ptr.Copy(ptr8); + RFs rFs; + RFile stateFile; + bool res = false; + int err = rFs.Connect(); + if (err == KErrNone) + { + err = stateFile.Open(rFs, ptr, EFileWrite); + if (err == KErrNotFound) + { + err = stateFile.Create(rFs, ptr, EFileWrite); + } + if (err == KErrNone) + { + CleanupClosePushL(stateFile); + TPckgBuf state(aState); + stateFile.Write(0, state); + CleanupStack::PopAndDestroy(); // state file + res = true; + } + } + CleanupStack::PopAndDestroy(); // file path + return res; +} + +int JavaCertStoreMetadataFileHandler::readState(std::string aFilePath) +{ + int state = STATE_UNDEFINED; + int len = aFilePath.size(); + HBufC* filePath = HBufC::NewL(len); + CleanupStack::PushL(filePath); + TPtr ptr = filePath->Des(); + TPtr8 ptr8((unsigned char *)aFilePath.c_str(),len); + ptr8.SetLength(len); + ptr.Copy(ptr8); + RFs rFs; + RFile stateFile; + int err = rFs.Connect(); + if (err == KErrNone) + { + err = stateFile.Open(rFs, ptr, EFileRead); + if (err == KErrNone) + { + CleanupClosePushL(stateFile); + TPckgBuf tmp; + err = stateFile.Read(0, tmp); + CleanupStack::PopAndDestroy(); // state file + if (err == KErrNone) + { + state = tmp(); + } + } + } + CleanupStack::PopAndDestroy(); // file path + return state; +} + +} //end namespace security +} //end namespace java