|
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 } |