equal
deleted
inserted
replaced
97 WRITELOG2( "CProcessOriginMapper::RegisterProcessL - processId: 0x%.8x, origin: %d", aProcessId.iUid, (TInt)aOrigin ); |
97 WRITELOG2( "CProcessOriginMapper::RegisterProcessL - processId: 0x%.8x, origin: %d", aProcessId.iUid, (TInt)aOrigin ); |
98 const TInt index = FindProcess( aProcessId ); |
98 const TInt index = FindProcess( aProcessId ); |
99 if ( index < 0 ) // not found |
99 if ( index < 0 ) // not found |
100 { |
100 { |
101 TProcessOriginPair pair = { aProcessId, aOrigin }; |
101 TProcessOriginPair pair = { aProcessId, aOrigin }; |
102 iProcessOriginMap.AppendL( pair ); |
102 User::LeaveIfError( iProcessOriginMap.InsertInOrder(pair, TLinearOrder<TProcessOriginPair>(CProcessOriginMapper::Compare))); |
103 } |
103 } |
104 else if ( index < iProcessOriginMap.Count() ) |
104 else if ( index < iProcessOriginMap.Count() ) |
105 { |
105 { |
106 iProcessOriginMap[index].iOrigin = aOrigin; |
106 iProcessOriginMap[index].iOrigin = aOrigin; |
107 } |
107 } |
318 // Find index by process id. |
318 // Find index by process id. |
319 //----------------------------------------------------------------------------- |
319 //----------------------------------------------------------------------------- |
320 // |
320 // |
321 TInt CProcessOriginMapper::FindProcess( const TUid& aProcessId ) |
321 TInt CProcessOriginMapper::FindProcess( const TUid& aProcessId ) |
322 { |
322 { |
323 const TInt count = iProcessOriginMap.Count(); |
323 TInt low( 0 ); |
324 for ( TInt i( 0 ); i < count; i++ ) |
324 TInt high( iProcessOriginMap.Count() ); |
325 { |
325 |
326 if ( iProcessOriginMap[i].iProcessId == aProcessId ) |
326 while( low < high ) |
327 { |
327 { |
328 return i; |
328 TInt mid( (low+high)>>1 ); |
|
329 |
|
330 const TInt compare( aProcessId.iUid - iProcessOriginMap[mid].iProcessId.iUid ); |
|
331 if( compare == 0 ) |
|
332 { |
|
333 return mid; |
|
334 } |
|
335 else if( compare > 0 ) |
|
336 { |
|
337 low = mid + 1; |
|
338 } |
|
339 else |
|
340 { |
|
341 high = mid; |
329 } |
342 } |
330 } |
343 } |
331 |
344 |
332 return KErrNotFound; |
345 return KErrNotFound; |
333 } |
346 } |
417 ptr.Num( aOrigin ); |
430 ptr.Num( aOrigin ); |
418 iWriteStream.WriteL( ptr ); |
431 iWriteStream.WriteL( ptr ); |
419 iWriteStream.WriteL( KLineFeed ); |
432 iWriteStream.WriteL( KLineFeed ); |
420 } |
433 } |
421 |
434 |
|
435 TInt CProcessOriginMapper::Compare(const TProcessOriginPair& aFirst, const TProcessOriginPair& aSecond) |
|
436 { |
|
437 return aFirst.iProcessId.iUid - aSecond.iProcessId.iUid; |
|
438 } |
|
439 |