--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/httpfilters/cookie/ManagerSrc/GroupIdInfoArray.cpp Wed Mar 31 22:32:15 2010 +0300
@@ -0,0 +1,312 @@
+/*
+ * CGroupIdInfoArray.cpp
+ *
+ * Created on: Nov 24, 2009
+ * Author: mohanti
+ */
+//System Includes
+
+//User Includes
+#include "GroupIdInfoArray.h"
+#include "CookieLogger.h"
+
+//Constatnts
+
+const TInt KGroupArrayGranularity = 10;
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::NewL
+// ---------------------------------------------------------
+//
+
+CGroupIdInfo* CGroupIdInfo::NewL( TUint32 aGroupId, const RArray<TUint32>& aAppuid, TBool aCookieSharableFlag )
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::NewL aGroupId = %x, CookieSharableFlag = %x" )
+ ,aGroupId,aCookieSharableFlag ) );
+ CGroupIdInfo* self = CGroupIdInfo::NewLC(aGroupId, aAppuid, aCookieSharableFlag);
+ CleanupStack::Pop();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::NewLC
+// ---------------------------------------------------------
+//
+
+CGroupIdInfo* CGroupIdInfo::NewLC(TUint32 aGroupId, const RArray<TUint32>& aAppuid, TBool aCookieSharableFlag)
+ {
+ CGroupIdInfo* self = new (ELeave) CGroupIdInfo( aGroupId, aCookieSharableFlag );
+ CleanupStack::PushL(self);
+ self->ConstructL(aAppuid);
+ return self;
+ }
+// ---------------------------------------------------------
+// CCookieGroupDataArray::NewLC
+// ---------------------------------------------------------
+//
+
+CGroupIdInfo::~CGroupIdInfo()
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::~CGroupIdInfo" ) ) );
+ iAppUid.Close();
+ CLOG( ( EClient, 0, _L( "<- CGroupIdArray::~CGroupIdInfo" ) ) );
+ }
+// ---------------------------------------------------------
+// CCookieGroupDataArray::NewLC
+// ---------------------------------------------------------
+//
+
+void CGroupIdInfo::ConstructL(const RArray<TUint32>& aAppuid)
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::ConstructL" ) ) );
+ TInt count = aAppuid.Count();
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::count = %d" ), count ) );
+ for(TInt i=0; i<count; i++)
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::aAppuid[%d] = %x " ), aAppuid[i] ) );
+ iAppUid.AppendL(aAppuid[i]);
+ }
+ CLOG( ( EClient, 0, _L( "<- CGroupIdArray::ConstructL" ) ) );
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::CGroupIdInfo
+// ---------------------------------------------------------
+//
+
+CGroupIdInfo::CGroupIdInfo( TUint32 aGroupId,TBool aCookieSharableFlag ):iCookieSharableFlag( aCookieSharableFlag ), iGroupId(aGroupId)
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::CGroupIdInfo" ) ) );
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::CGroupIdInfo" ) ) );
+ }
+TBool CGroupIdInfo::GetCookieSharableFlag()
+ {
+ return iCookieSharableFlag;
+ }
+// ---------------------------------------------------------
+// CGroupIdInfo::GetGroupName
+// ---------------------------------------------------------
+//
+
+TInt CGroupIdInfo::GetGroupName(TUint32 aSecureId,TUint32& aGroupId)
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::GetGroupName aSecureId = %x,aGroupId = %x" )
+ , aSecureId, aGroupId ) );
+ if(aSecureId == iGroupId)
+ {
+ aGroupId = iGroupId;
+ return KErrNone;
+ }
+ else
+ {
+ return KErrNotFound;
+ }
+ }
+TBool CGroupIdInfo::IsThisPartOfSharedGroup( TUint32& aClientId )
+ {
+ TBool found(EFalse);
+ if(!GetCookieSharableFlag())
+ return EFalse;
+ TInt count = iAppUid.Count();
+ for (TInt i=0;i<count;i++)
+ {
+ if ( aClientId == At(i) )
+ {
+ found = ETrue;
+ CLOG( ( EClient, 0, _L( "-> CGroupIdInfo::IsThisPartOfSharedGroup aClientId %x is Part of Group " ), aClientId ) );
+ break;
+ }
+ }
+ return found;
+ }
+// ---------------------------------------------------------
+// CGroupIdInfo::AddClientL
+// ---------------------------------------------------------
+//
+
+void CGroupIdInfo::AddClientL(TUint32 aClientId)
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::AddClientL aClientId %x" ), aClientId ) );
+ iAppUid.AppendL(aClientId);
+ CLOG( ( EClient, 0, _L( "<- CGroupIdArray::AddClientL aClientId %x" ) ) );
+ }
+// ---------------------------------------------------------
+// CGroupIdInfo::operator[]
+// ---------------------------------------------------------
+//
+
+TUint32 CGroupIdInfo::operator[](TInt aIndex) const
+ {
+ return (iAppUid[aIndex]);
+ }
+
+// ---------------------------------------------------------
+// CGroupIdInfo::At
+// ---------------------------------------------------------
+//
+
+TUint32 CGroupIdInfo::At(TInt aIndex) const
+ {
+ return (iAppUid[ aIndex ]);
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::GetSecureId
+// ---------------------------------------------------------
+//
+const TUint32& CGroupIdInfo::GetGroupId()
+ {
+ return iGroupId;
+ }
+// ---------------------------------------------------------
+// CCookieGroupDataArray::NewL
+// ---------------------------------------------------------
+//
+
+CGroupIdArray* CGroupIdArray::NewL()
+ {
+ CGroupIdArray* self = CGroupIdArray::NewLC();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::NewLC
+// ---------------------------------------------------------
+//
+
+CGroupIdArray* CGroupIdArray::NewLC()
+ {
+ CGroupIdArray* self = new (ELeave) CGroupIdArray();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::CGroupIdArray
+// ---------------------------------------------------------
+//
+CGroupIdArray::CGroupIdArray()
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::CGroupIdArray" ) ) );
+ CLOG( ( EClient, 0, _L( "<- CGroupIdArray::CGroupIdArray" ) ) );
+ }
+// ---------------------------------------------------------
+// CCookieGroupDataArray::~CGroupIdArray
+// ---------------------------------------------------------
+//
+
+CGroupIdArray::~CGroupIdArray()
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::~CGroupIdArray" ) ) );
+ if(iGroupIdInfoArray && Count())
+ {
+ iGroupIdInfoArray->ResetAndDestroy();
+ iGroupIdInfoArray->Close();
+ //delete iGroupIdInfoArray;
+ iGroupIdInfoArray = NULL;
+ }
+ CLOG( ( EClient, 0, _L( "<- CGroupIdArray::~CGroupIdArray" ) ) );
+ }
+// ---------------------------------------------------------
+// CCookieGroupDataArray::ConstructL
+// ---------------------------------------------------------
+//
+void CGroupIdArray::ConstructL()
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::ConstructL" ) ) );
+ iGroupIdInfoArray = new (ELeave) RPointerArray<CGroupIdInfo>(KGroupArrayGranularity);
+ CLOG( ( EClient, 0, _L( "<- CGroupIdArray::ConstructL" ) ) );
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::AddGroupIdL
+// ---------------------------------------------------------
+//
+
+void CGroupIdArray::AddGroupIdL(CGroupIdInfo* aCGroupIdInfo)
+ {
+ return iGroupIdInfoArray->AppendL(aCGroupIdInfo);
+ }
+
+// ---------------------------------------------------------
+// CGroupIdArray::operator[]
+// ---------------------------------------------------------
+//
+CGroupIdInfo& CGroupIdArray::operator[](TInt aIndex) const
+ {
+ return *(*iGroupIdInfoArray)[aIndex];
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::At
+// ---------------------------------------------------------
+//
+CGroupIdInfo& CGroupIdArray::At(TInt aIndex) const
+ {
+ return *(*iGroupIdInfoArray)[ aIndex ];
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::GetGroupId
+// ---------------------------------------------------------
+//
+TInt CGroupIdArray::GetGroupId(TUint32 aClientId,TUint32& aGroupId)
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::GetGroupId aClientId = %x" ), aClientId ) );
+ TInt count = Count();
+ TBool found(EFalse);
+ TUint32 groupId =0;
+ for(TInt i=0;i<count;i++)
+ {
+ TInt ret = At(i).GetGroupName(aClientId,groupId);
+ if ( ret == KErrNone )
+ {
+ aGroupId = groupId;
+ found = ETrue;
+ CLOG( ( EClient, 0, _L( "<- CGroupIdArray::Group Id of aClientId= %x is %x" ), aClientId, aGroupId ) );
+ break;
+ }
+ }
+ if(found)
+ return KErrNone;
+ else
+ return KErrNotFound;
+ }
+// ---------------------------------------------------------
+// CCookieGroupDataArray::GetGroupId
+// ---------------------------------------------------------
+//
+
+TInt CGroupIdArray::GetGroupId(TUint32 aClientId,TUint32& aGroupId,TBool& aCookieSharableFlag)
+ {
+ CLOG( ( EClient, 0, _L( "-> CGroupIdArray::GetGroupId aClientId = %x,aAppUid =%x" ), aClientId, aAppUid ) );
+ TInt count = Count();
+ TBool found(EFalse);
+
+ for(TInt i=0;i<count;i++)
+ {
+ if( At(i).GetGroupId() == aClientId || At(i).IsThisPartOfSharedGroup(aClientId) )
+ {
+ aGroupId = At(i).GetGroupId();
+ aCookieSharableFlag = At(i).GetCookieSharableFlag();
+ found = ETrue;
+ break;
+ }
+ }
+ if(found)
+ return KErrNone;
+ else
+ return KErrNotFound;
+
+ }
+
+// ---------------------------------------------------------
+// CCookieGroupDataArray::Count
+// ---------------------------------------------------------
+//
+TInt CGroupIdArray::Count()
+ {
+ return iGroupIdInfoArray->Count();
+ }