cryptoservices/certificateandkeymgmt/tadditionalstores/tadditionalstoreentries.cpp
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptoservices/certificateandkeymgmt/tadditionalstores/tadditionalstoreentries.cpp	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptoservices/certificateandkeymgmt/tadditionalstores/tadditionalstoreentries.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -1,316 +1,314 @@
-/*
-* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-*
-*/
-
-
-
-
-/**
- @file
-*/
-
-#include "tadditionalstoremapping.h"
-
-////////////////////////////////////////////////////////////////////////////////
-//CFileCertStoreMapping
-/////////////////////////////////////////////////////////////////////////////////
-
-CFileCertStoreMapping* CFileCertStoreMapping::NewL()
-	{
-	CFileCertStoreMapping* self = CFileCertStoreMapping::NewLC();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CFileCertStoreMapping* CFileCertStoreMapping::NewLC()
-	{
-	CFileCertStoreMapping* self = new(ELeave) CFileCertStoreMapping();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	return self;
-	}
-
-void CFileCertStoreMapping::ConstructL()
-	{
-	iCertificateApps = new(ELeave) RArray<TUid>();
-	}
-
-CFileCertStoreMapping::CFileCertStoreMapping()
-	{	
-	}
-
-CFileCertStoreMapping::~CFileCertStoreMapping()
-	{
-	if (iEntry)
-		{
-		iEntry->Release();
-		}
-	if (iCertificateApps)
-		{
-		iCertificateApps->Close();
-		delete iCertificateApps;
-		}
-	}
-
-void CFileCertStoreMapping::SetEntry(CCTCertInfo* aCertInfo)
-	{
-	if (iEntry)
-		{
-		iEntry->Release();
-		}
-	iEntry = aCertInfo;
-	}
-
-void CFileCertStoreMapping::SetCertificateApps(RArray<TUid>* aCertificateApps)
-	{
-	iCertificateApps->Close();
-	delete iCertificateApps;
-	iCertificateApps = aCertificateApps;
-	}
-
-void CFileCertStoreMapping::SetId(TStreamId aId)
-	{
-	iId = aId;
-	}
-
-CCTCertInfo* CFileCertStoreMapping::Entry() const
-	{
-	return iEntry;
-	}
-
-const RArray<TUid>& CFileCertStoreMapping::CertificateApps() const
-	{
-	return *iCertificateApps;
-	}
-
-TBool CFileCertStoreMapping::IsApplicable(const TUid& aApplication) const
-	{
-	TInt count = iCertificateApps->Count();
-	for (TInt i = 0; i < count; i++)
-		{
-		TUid app = (*iCertificateApps)[i];
-		if (app == aApplication)
-				{
-				return ETrue;
-				}
-		}
-	return EFalse;
-	}
-
-TBool CFileCertStoreMapping::Trusted() const
-	{
-	return iTrusted;
-	}
-
-void CFileCertStoreMapping::SetTrusted(TBool aTrusted)
-	{
-	iTrusted = aTrusted;
-	}
-
-TStreamId CFileCertStoreMapping::Id() const
-	{
-	return iId;
-	}
-
-void CFileCertStoreMapping::ExternalizeL(RWriteStream& aStream) const
-	{
-	if (!iTempRemoved)
-		{
-		aStream << *iEntry;
-		TInt count = iCertificateApps->Count();
-		aStream.WriteInt32L(count);
-		for (TInt i = 0; i < count; i++)
-			{
-			aStream << (*iCertificateApps)[i];
-			}
-		aStream.WriteUint8L(iTrusted);
-		aStream << iId;			
-		}
-	}
-
-void CFileCertStoreMapping::SetTempRemoved(TBool aFlag)
-	{
-	iTempRemoved=aFlag;
-	}
-
-TBool CFileCertStoreMapping::IsTempRemoved()
-	{
-	return iTempRemoved;
-	}
-
-#include "tadditionalstoremappings.h"
-
-/////////////////////////////////////////////////////////////////////////////////
-//CFileCertStoreMappings
-/////////////////////////////////////////////////////////////////////////////////
-CFileCertStoreMappings::~CFileCertStoreMappings()
-	{
-	if (iMappings)
-		{
-		iMappings->ResetAndDestroy();
-		delete iMappings;
-		}
-	}
-
-TInt CFileCertStoreMappings::Count()
-	{
-	return iMappings->Count();
-	}
-
-void CFileCertStoreMappings::AddL(CFileCertStoreMapping* aEntry)
-	{
-	User::LeaveIfError(iMappings->Append(aEntry));
-	}
-
-TInt CFileCertStoreMappings::Remove(const CCTCertInfo& aCertInfo)
-	{
-	TInt index = Index(aCertInfo);
-	if (index == KErrNotFound)
-		{
-		return KErrNotFound;
-		}
-	CFileCertStoreMapping* mapping = (*iMappings)[index];
-	iMappings->Remove(index);
-	delete mapping;
-	return KErrNone;
-	}
-
-TInt CFileCertStoreMappings::SetTempRemove(const CCTCertInfo& aCertInfo, TBool aFlag)
-	{
-	TInt index = Index(aCertInfo);
-	if (index == KErrNotFound)
-		{
-		return KErrNotFound;
-		}
-	(*iMappings)[index]->SetTempRemoved(aFlag);
-	return KErrNone;		
-	}
-
-
-void CFileCertStoreMappings::ExternalizeL(RWriteStream& aStream) const
-	{
-	TInt count = iMappings->Count();
-	TInt realCount=count;
-	TInt i=0;
-	for (i = 0; i < count; i++)
-		{
-		if ((*iMappings)[i]->IsTempRemoved())
-			{
-			realCount--;
-			}
-		}
-	aStream.WriteInt32L(realCount);
-	for (i = 0; i < count; i++)
-		{
-		aStream << *(*iMappings)[i];
-		}
-	}
-
-void CFileCertStoreMappings::ReplaceL()
-	{
-	RStoreWriteStream stream;
-	stream.ReplaceLC(iStore, iStreamId);
-	ExternalizeL(stream);
-	stream.CommitL();
-	CleanupStack::PopAndDestroy();
-	}
-
-TInt CFileCertStoreMappings::Index(const CCTCertInfo& aCertInfo)
-	{
-	TInt count = iMappings->Count();
-	TInt ix = KErrNotFound;
-	for (TInt i = 0; i < count; i++)
-		{
-		CFileCertStoreMapping* mapping = (*iMappings)[i];
-		if (aCertInfo==*(mapping->Entry()))
-			{
-			ix = i;
-			break;
-			}
-		}
-	return ix;
-	}
-
-CFileCertStoreMapping* CFileCertStoreMappings::Mapping(TInt aIndex)
-	{
-	return (*iMappings)[aIndex];
-	}
-
-TStreamId CFileCertStoreMappings::StreamId() const
-	{
-	return iStreamId;
-	}
-
-CFileCertStoreMappings::CFileCertStoreMappings(TStreamId aStreamId, 
-													   CPermanentFileStore& aStore)
-	:iStreamId(aStreamId), iStore(aStore)
-	{
-	}
-
-/////////////////////////////////////////////////////////////////////////////////
-//CFileCertStoreMappings
-/////////////////////////////////////////////////////////////////////////////////
-CFileCertStoreMappings* CFileCertStoreMappings::NewL(TStreamId aStreamId, 
-													 CPermanentFileStore& aStore)
-	{
-	CFileCertStoreMappings* self = new(ELeave) CFileCertStoreMappings(aStreamId, aStore);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop();
-	return self;
-	}
-
-const CCTCertInfo& CFileCertStoreMappings::Entry(TInt aIndex)
-	{
-	CFileCertStoreMapping* mapping = (*iMappings)[aIndex];
-	return *mapping->Entry();
-	}
-
-const CCTCertInfo& CFileCertStoreMappings::EntryByHandleL(TInt aHandle) const
-	{
-	TInt count = iMappings->Count();
-	for (TInt i = 0; i < count; i++)
-		{
-		CFileCertStoreMapping* mapping = (*iMappings)[i];
-		if (aHandle==mapping->Entry()->Handle().iObjectId)
-			{
-			return *mapping->Entry();
-			}
-		}
-	User::Leave(KErrNotFound);
-	CCTCertInfo* info = NULL; // This is to shut up a compiler warning
-	return *info;
-	}
-
-TInt CFileCertStoreMappings::NextHandle() const 
-	{
-	TInt count = iMappings->Count();
-	TInt maxHandle = -1;
-	for (TInt i = 0; i < count; i++)
-		{
-		CFileCertStoreMapping* mapping = (*iMappings)[i];
-		if (mapping->Entry()->Handle().iObjectId > maxHandle)
-			{
-			maxHandle = mapping->Entry()->Handle().iObjectId;
-			}
-		}
-	return ++maxHandle;
-	}
-
-void CFileCertStoreMappings::ConstructL()
-	{
-	iMappings = new(ELeave) RPointerArray<CFileCertStoreMapping>;
-	}
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+
+/**
+ @file
+*/
+
+#include "tadditionalstoremapping.h"
+
+////////////////////////////////////////////////////////////////////////////////
+//CFileCertStoreMapping
+/////////////////////////////////////////////////////////////////////////////////
+
+CFileCertStoreMapping* CFileCertStoreMapping::NewL()
+	{
+	CFileCertStoreMapping* self = CFileCertStoreMapping::NewLC();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CFileCertStoreMapping* CFileCertStoreMapping::NewLC()
+	{
+	CFileCertStoreMapping* self = new(ELeave) CFileCertStoreMapping();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	return self;
+	}
+
+void CFileCertStoreMapping::ConstructL()
+	{
+	iCertificateApps = new(ELeave) RArray<TUid>();
+	}
+
+CFileCertStoreMapping::CFileCertStoreMapping()
+	{	
+	}
+
+CFileCertStoreMapping::~CFileCertStoreMapping()
+	{
+	if (iEntry)
+		{
+		iEntry->Release();
+		}
+	if (iCertificateApps)
+		{
+		iCertificateApps->Close();
+		delete iCertificateApps;
+		}
+	}
+
+void CFileCertStoreMapping::SetEntry(CCTCertInfo* aCertInfo)
+	{
+	if (iEntry)
+		{
+		iEntry->Release();
+		}
+	iEntry = aCertInfo;
+	}
+
+void CFileCertStoreMapping::SetCertificateApps(RArray<TUid>* aCertificateApps)
+	{
+	iCertificateApps->Close();
+	delete iCertificateApps;
+	iCertificateApps = aCertificateApps;
+	}
+
+void CFileCertStoreMapping::SetId(TStreamId aId)
+	{
+	iId = aId;
+	}
+
+CCTCertInfo* CFileCertStoreMapping::Entry() const
+	{
+	return iEntry;
+	}
+
+const RArray<TUid>& CFileCertStoreMapping::CertificateApps() const
+	{
+	return *iCertificateApps;
+	}
+
+TBool CFileCertStoreMapping::IsApplicable(const TUid& aApplication) const
+	{
+	TInt count = iCertificateApps->Count();
+	for (TInt i = 0; i < count; i++)
+		{
+		TUid app = (*iCertificateApps)[i];
+		if (app == aApplication)
+				{
+				return ETrue;
+				}
+		}
+	return EFalse;
+	}
+
+TBool CFileCertStoreMapping::Trusted() const
+	{
+	return iTrusted;
+	}
+
+void CFileCertStoreMapping::SetTrusted(TBool aTrusted)
+	{
+	iTrusted = aTrusted;
+	}
+
+TStreamId CFileCertStoreMapping::Id() const
+	{
+	return iId;
+	}
+
+void CFileCertStoreMapping::ExternalizeL(RWriteStream& aStream) const
+	{
+	if (!iTempRemoved)
+		{
+		aStream << *iEntry;
+		TInt count = iCertificateApps->Count();
+		aStream.WriteInt32L(count);
+		for (TInt i = 0; i < count; i++)
+			{
+			aStream << (*iCertificateApps)[i];
+			}
+		aStream.WriteUint8L(iTrusted);
+		aStream << iId;			
+		}
+	}
+
+void CFileCertStoreMapping::SetTempRemoved(TBool aFlag)
+	{
+	iTempRemoved=aFlag;
+	}
+
+TBool CFileCertStoreMapping::IsTempRemoved()
+	{
+	return iTempRemoved;
+	}
+
+#include "tadditionalstoremappings.h"
+
+/////////////////////////////////////////////////////////////////////////////////
+//CFileCertStoreMappings
+/////////////////////////////////////////////////////////////////////////////////
+CFileCertStoreMappings::~CFileCertStoreMappings()
+	{
+	if (iMappings)
+		{
+		iMappings->ResetAndDestroy();
+		delete iMappings;
+		}
+	}
+
+TInt CFileCertStoreMappings::Count()
+	{
+	return iMappings->Count();
+	}
+
+void CFileCertStoreMappings::AddL(CFileCertStoreMapping* aEntry)
+	{
+	User::LeaveIfError(iMappings->Append(aEntry));
+	}
+
+TInt CFileCertStoreMappings::Remove(const CCTCertInfo& aCertInfo)
+	{
+	TInt index = Index(aCertInfo);
+	if (index == KErrNotFound)
+		{
+		return KErrNotFound;
+		}
+	CFileCertStoreMapping* mapping = (*iMappings)[index];
+	iMappings->Remove(index);
+	delete mapping;
+	return KErrNone;
+	}
+
+TInt CFileCertStoreMappings::SetTempRemove(const CCTCertInfo& aCertInfo, TBool aFlag)
+	{
+	TInt index = Index(aCertInfo);
+	if (index == KErrNotFound)
+		{
+		return KErrNotFound;
+		}
+	(*iMappings)[index]->SetTempRemoved(aFlag);
+	return KErrNone;		
+	}
+
+
+void CFileCertStoreMappings::ExternalizeL(RWriteStream& aStream) const
+	{
+	TInt count = iMappings->Count();
+	TInt realCount=count;
+	TInt i=0;
+	for (i = 0; i < count; i++)
+		{
+		if ((*iMappings)[i]->IsTempRemoved())
+			{
+			realCount--;
+			}
+		}
+	aStream.WriteInt32L(realCount);
+	for (i = 0; i < count; i++)
+		{
+		aStream << *(*iMappings)[i];
+		}
+	}
+
+void CFileCertStoreMappings::ReplaceL()
+	{
+	RStoreWriteStream stream;
+	stream.ReplaceLC(iStore, iStreamId);
+	ExternalizeL(stream);
+	stream.CommitL();
+	CleanupStack::PopAndDestroy();
+	}
+
+TInt CFileCertStoreMappings::Index(const CCTCertInfo& aCertInfo)
+	{
+	TInt count = iMappings->Count();
+	TInt ix = KErrNotFound;
+	for (TInt i = 0; i < count; i++)
+		{
+		CFileCertStoreMapping* mapping = (*iMappings)[i];
+		if (aCertInfo==*(mapping->Entry()))
+			{
+			ix = i;
+			break;
+			}
+		}
+	return ix;
+	}
+
+CFileCertStoreMapping* CFileCertStoreMappings::Mapping(TInt aIndex)
+	{
+	return (*iMappings)[aIndex];
+	}
+
+TStreamId CFileCertStoreMappings::StreamId() const
+	{
+	return iStreamId;
+	}
+
+CFileCertStoreMappings::CFileCertStoreMappings(TStreamId aStreamId, 
+													   CPermanentFileStore& aStore)
+	:iStreamId(aStreamId), iStore(aStore)
+	{
+	}
+
+/////////////////////////////////////////////////////////////////////////////////
+//CFileCertStoreMappings
+/////////////////////////////////////////////////////////////////////////////////
+CFileCertStoreMappings* CFileCertStoreMappings::NewL(TStreamId aStreamId, 
+													 CPermanentFileStore& aStore)
+	{
+	CFileCertStoreMappings* self = new(ELeave) CFileCertStoreMappings(aStreamId, aStore);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self;
+	}
+
+const CCTCertInfo& CFileCertStoreMappings::Entry(TInt aIndex)
+	{
+	CFileCertStoreMapping* mapping = (*iMappings)[aIndex];
+	return *mapping->Entry();
+	}
+
+const CCTCertInfo& CFileCertStoreMappings::EntryByHandleL(TInt aHandle) const
+	{
+	TInt count = iMappings->Count();
+	for (TInt i = 0; i < count; i++)
+		{
+		CFileCertStoreMapping* mapping = (*iMappings)[i];
+		if (aHandle==mapping->Entry()->Handle().iObjectId)
+			{
+			return *mapping->Entry();
+			}
+		}
+	User::Leave(KErrNotFound);
+	CCTCertInfo* info = NULL; // This is to shut up a compiler warning
+	return *info;
+	}
+
+TInt CFileCertStoreMappings::NextHandle() const 
+	{
+	TInt count = iMappings->Count();
+	TInt maxHandle = -1;
+	for (TInt i = 0; i < count; i++)
+		{
+		CFileCertStoreMapping* mapping = (*iMappings)[i];
+		if (mapping->Entry()->Handle().iObjectId > maxHandle)
+			{
+			maxHandle = mapping->Entry()->Handle().iObjectId;
+			}
+		}
+	return ++maxHandle;
+	}
+
+void CFileCertStoreMappings::ConstructL()
+	{
+	iMappings = new(ELeave) RPointerArray<CFileCertStoreMapping>;
+	}