httpfilters/cookie/ManagerSrc/GroupIdInfoArray.cpp
branchRCL_3
changeset 7 2611c08ee28e
child 9 9015645363c8
equal deleted inserted replaced
6:fa2fd8b2d6cc 7:2611c08ee28e
       
     1 /*
       
     2  * CGroupIdInfoArray.cpp
       
     3  *
       
     4  *  Created on: Nov 24, 2009
       
     5  *      Author: mohanti
       
     6  */
       
     7 //System Includes
       
     8 
       
     9 //User Includes
       
    10 #include "GroupIdInfoArray.h"
       
    11 #include "CookieLogger.h"
       
    12 
       
    13 //Constatnts
       
    14 
       
    15 const TInt KGroupArrayGranularity = 10;
       
    16 
       
    17 // ---------------------------------------------------------
       
    18 // CCookieGroupDataArray::NewL
       
    19 // ---------------------------------------------------------
       
    20 //
       
    21 
       
    22 CGroupIdInfo* CGroupIdInfo::NewL( TUint32 aGroupId, const RArray<TUint32>& aAppuid, TBool aCookieSharableFlag )
       
    23     {
       
    24     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::NewL aGroupId = %x, CookieSharableFlag = %x" )
       
    25             ,aGroupId,aCookieSharableFlag ) );
       
    26     CGroupIdInfo* self = CGroupIdInfo::NewLC(aGroupId, aAppuid, aCookieSharableFlag);
       
    27     CleanupStack::Pop();
       
    28     return self;
       
    29     }
       
    30 
       
    31 // ---------------------------------------------------------
       
    32 // CCookieGroupDataArray::NewLC
       
    33 // ---------------------------------------------------------
       
    34 //
       
    35 
       
    36 CGroupIdInfo* CGroupIdInfo::NewLC(TUint32 aGroupId, const RArray<TUint32>& aAppuid, TBool aCookieSharableFlag)
       
    37     {
       
    38     CGroupIdInfo* self = new (ELeave) CGroupIdInfo( aGroupId, aCookieSharableFlag );
       
    39     CleanupStack::PushL(self);
       
    40     self->ConstructL(aAppuid);
       
    41     return self;
       
    42     }
       
    43 // ---------------------------------------------------------
       
    44 // CCookieGroupDataArray::NewLC
       
    45 // ---------------------------------------------------------
       
    46 //
       
    47 
       
    48 CGroupIdInfo::~CGroupIdInfo()
       
    49     {
       
    50     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::~CGroupIdInfo" ) ) );
       
    51     iAppUid.Close();
       
    52     CLOG( ( EClient, 0, _L( "<- CGroupIdArray::~CGroupIdInfo" ) ) );
       
    53     }
       
    54 // ---------------------------------------------------------
       
    55 // CCookieGroupDataArray::NewLC
       
    56 // ---------------------------------------------------------
       
    57 //
       
    58 
       
    59 void CGroupIdInfo::ConstructL(const RArray<TUint32>& aAppuid)
       
    60     {
       
    61     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::ConstructL" ) ) );
       
    62     TInt count = aAppuid.Count();
       
    63     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::count = %d" ), count ) );
       
    64     for(TInt i=0; i<count; i++)
       
    65         {
       
    66         CLOG( ( EClient, 0, _L( "-> CGroupIdArray::aAppuid[%d] = %x " ), aAppuid[i] ) );
       
    67         iAppUid.AppendL(aAppuid[i]);
       
    68         }
       
    69     CLOG( ( EClient, 0, _L( "<- CGroupIdArray::ConstructL" ) ) );
       
    70     }
       
    71 
       
    72 // ---------------------------------------------------------
       
    73 // CCookieGroupDataArray::CGroupIdInfo
       
    74 // ---------------------------------------------------------
       
    75 //
       
    76 
       
    77 CGroupIdInfo::CGroupIdInfo( TUint32 aGroupId,TBool aCookieSharableFlag ):iCookieSharableFlag( aCookieSharableFlag ), iGroupId(aGroupId)
       
    78     {
       
    79     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::CGroupIdInfo" ) ) );
       
    80     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::CGroupIdInfo" ) ) );
       
    81     }
       
    82 TBool CGroupIdInfo::GetCookieSharableFlag()
       
    83     {
       
    84     return iCookieSharableFlag;
       
    85     }
       
    86 // ---------------------------------------------------------
       
    87 // CGroupIdInfo::GetGroupName
       
    88 // ---------------------------------------------------------
       
    89 //
       
    90 
       
    91 TInt CGroupIdInfo::GetGroupName(TUint32 aSecureId,TUint32& aGroupId)
       
    92     {
       
    93     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::GetGroupName aSecureId = %x,aGroupId = %x" )
       
    94             , aSecureId, aGroupId ) );
       
    95     if(aSecureId == iGroupId)
       
    96         {
       
    97         aGroupId = iGroupId; 
       
    98         return KErrNone;
       
    99         }
       
   100     else
       
   101         {
       
   102         return KErrNotFound;
       
   103         }
       
   104     }
       
   105 TBool CGroupIdInfo::IsThisPartOfSharedGroup( TUint32& aClientId )
       
   106     {
       
   107     TBool found(EFalse);
       
   108     if(!GetCookieSharableFlag())
       
   109         return EFalse;
       
   110     TInt count = iAppUid.Count();
       
   111     for (TInt i=0;i<count;i++)
       
   112         {
       
   113          if ( aClientId == At(i) )
       
   114              {
       
   115              found = ETrue;
       
   116              CLOG( ( EClient, 0, _L( "-> CGroupIdInfo::IsThisPartOfSharedGroup aClientId %x is Part of Group " ), aClientId ) );
       
   117              break;
       
   118              }
       
   119         }
       
   120     return found;
       
   121     }
       
   122 // ---------------------------------------------------------
       
   123 // CGroupIdInfo::AddClientL
       
   124 // ---------------------------------------------------------
       
   125 //
       
   126 
       
   127 void CGroupIdInfo::AddClientL(TUint32 aClientId)
       
   128     {
       
   129     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::AddClientL aClientId %x" ), aClientId  ) );
       
   130     iAppUid.AppendL(aClientId);
       
   131     CLOG( ( EClient, 0, _L( "<- CGroupIdArray::AddClientL aClientId %x" ) ) );
       
   132     }
       
   133 // ---------------------------------------------------------
       
   134 // CGroupIdInfo::operator[]
       
   135 // ---------------------------------------------------------
       
   136 //
       
   137 
       
   138 TUint32 CGroupIdInfo::operator[](TInt aIndex) const
       
   139     {
       
   140     return (iAppUid[aIndex]);
       
   141     }
       
   142 
       
   143 // ---------------------------------------------------------
       
   144 // CGroupIdInfo::At
       
   145 // ---------------------------------------------------------
       
   146 //
       
   147 
       
   148 TUint32 CGroupIdInfo::At(TInt aIndex) const
       
   149     {
       
   150     return (iAppUid[ aIndex ]);
       
   151     }
       
   152 
       
   153 // ---------------------------------------------------------
       
   154 // CCookieGroupDataArray::GetSecureId
       
   155 // ---------------------------------------------------------
       
   156 //
       
   157 const TUint32& CGroupIdInfo::GetGroupId()
       
   158     {
       
   159     return iGroupId;
       
   160     }
       
   161 // ---------------------------------------------------------
       
   162 // CCookieGroupDataArray::NewL
       
   163 // ---------------------------------------------------------
       
   164 //
       
   165 
       
   166 CGroupIdArray* CGroupIdArray::NewL()
       
   167     {
       
   168     CGroupIdArray* self = CGroupIdArray::NewLC();
       
   169     CleanupStack::Pop();
       
   170     return self;
       
   171     }
       
   172 
       
   173 // ---------------------------------------------------------
       
   174 // CCookieGroupDataArray::NewLC
       
   175 // ---------------------------------------------------------
       
   176 //
       
   177 
       
   178 CGroupIdArray* CGroupIdArray::NewLC()
       
   179     {
       
   180     CGroupIdArray* self = new (ELeave) CGroupIdArray();
       
   181     CleanupStack::PushL(self);
       
   182     self->ConstructL();
       
   183     return self;
       
   184     }
       
   185 
       
   186 // ---------------------------------------------------------
       
   187 // CCookieGroupDataArray::CGroupIdArray
       
   188 // ---------------------------------------------------------
       
   189 //
       
   190 CGroupIdArray::CGroupIdArray()
       
   191     {
       
   192     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::CGroupIdArray" ) ) );
       
   193     CLOG( ( EClient, 0, _L( "<- CGroupIdArray::CGroupIdArray" ) ) );
       
   194     }
       
   195 // ---------------------------------------------------------
       
   196 // CCookieGroupDataArray::~CGroupIdArray
       
   197 // ---------------------------------------------------------
       
   198 //
       
   199 
       
   200 CGroupIdArray::~CGroupIdArray()
       
   201     {
       
   202     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::~CGroupIdArray" ) ) );
       
   203     if(iGroupIdInfoArray && Count())
       
   204         {
       
   205         iGroupIdInfoArray->ResetAndDestroy();
       
   206         iGroupIdInfoArray->Close();
       
   207         //delete iGroupIdInfoArray;
       
   208         iGroupIdInfoArray = NULL;
       
   209         }
       
   210     CLOG( ( EClient, 0, _L( "<- CGroupIdArray::~CGroupIdArray" ) ) );
       
   211     }
       
   212 // ---------------------------------------------------------
       
   213 // CCookieGroupDataArray::ConstructL
       
   214 // ---------------------------------------------------------
       
   215 //
       
   216 void CGroupIdArray::ConstructL()
       
   217     {
       
   218     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::ConstructL" ) ) );
       
   219     iGroupIdInfoArray = new (ELeave) RPointerArray<CGroupIdInfo>(KGroupArrayGranularity);
       
   220     CLOG( ( EClient, 0, _L( "<- CGroupIdArray::ConstructL" ) ) );
       
   221     }
       
   222 
       
   223 // ---------------------------------------------------------
       
   224 // CCookieGroupDataArray::AddGroupIdL
       
   225 // ---------------------------------------------------------
       
   226 //
       
   227 
       
   228 void CGroupIdArray::AddGroupIdL(CGroupIdInfo* aCGroupIdInfo)
       
   229     {
       
   230     return iGroupIdInfoArray->AppendL(aCGroupIdInfo);
       
   231     }
       
   232 
       
   233 // ---------------------------------------------------------
       
   234 // CGroupIdArray::operator[]
       
   235 // ---------------------------------------------------------
       
   236 //
       
   237 CGroupIdInfo& CGroupIdArray::operator[](TInt aIndex) const
       
   238     {
       
   239     return *(*iGroupIdInfoArray)[aIndex];
       
   240     }
       
   241 
       
   242 // ---------------------------------------------------------
       
   243 // CCookieGroupDataArray::At
       
   244 // ---------------------------------------------------------
       
   245 //
       
   246 CGroupIdInfo& CGroupIdArray::At(TInt aIndex) const
       
   247     {
       
   248     return *(*iGroupIdInfoArray)[ aIndex ];
       
   249     }
       
   250 
       
   251 // ---------------------------------------------------------
       
   252 // CCookieGroupDataArray::GetGroupId
       
   253 // ---------------------------------------------------------
       
   254 //
       
   255 TInt CGroupIdArray::GetGroupId(TUint32 aClientId,TUint32& aGroupId)
       
   256     {
       
   257     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::GetGroupId aClientId = %x" ), aClientId ) );
       
   258     TInt count = Count();
       
   259     TBool found(EFalse);
       
   260     TUint32 groupId =0;
       
   261     for(TInt i=0;i<count;i++)
       
   262         {
       
   263         TInt ret = At(i).GetGroupName(aClientId,groupId);
       
   264          if ( ret == KErrNone )
       
   265              {
       
   266              aGroupId = groupId;
       
   267              found = ETrue;
       
   268              CLOG( ( EClient, 0, _L( "<- CGroupIdArray::Group Id of aClientId= %x is %x" ), aClientId, aGroupId ) );
       
   269              break;
       
   270              }
       
   271            }
       
   272     if(found)
       
   273         return KErrNone;
       
   274     else
       
   275         return KErrNotFound;
       
   276     }
       
   277 // ---------------------------------------------------------
       
   278 // CCookieGroupDataArray::GetGroupId
       
   279 // ---------------------------------------------------------
       
   280 //
       
   281 
       
   282 TInt CGroupIdArray::GetGroupId(TUint32 aClientId,TUint32& aGroupId,TBool& aCookieSharableFlag)
       
   283     {
       
   284     CLOG( ( EClient, 0, _L( "-> CGroupIdArray::GetGroupId aClientId = %x,aAppUid =%x" ), aClientId, aAppUid ) );
       
   285     TInt count = Count();
       
   286     TBool found(EFalse);
       
   287     
       
   288     for(TInt i=0;i<count;i++)
       
   289         {
       
   290          if( At(i).GetGroupId() == aClientId || At(i).IsThisPartOfSharedGroup(aClientId) )
       
   291            {
       
   292            aGroupId = At(i).GetGroupId();
       
   293            aCookieSharableFlag = At(i).GetCookieSharableFlag();
       
   294            found = ETrue;
       
   295            break;
       
   296            }
       
   297         }
       
   298     if(found)
       
   299         return KErrNone;
       
   300     else
       
   301         return KErrNotFound;
       
   302 
       
   303     }
       
   304 
       
   305 // ---------------------------------------------------------
       
   306 // CCookieGroupDataArray::Count
       
   307 // ---------------------------------------------------------
       
   308 //
       
   309 TInt CGroupIdArray::Count()
       
   310     {
       
   311     return iGroupIdInfoArray->Count();
       
   312     }