cryptoservices/certificateandkeymgmt/tadditionalstores/tadditionalstoreentries.cpp
--- 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>;
+ }