/*+ −
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + −
* All rights reserved.+ −
* This component and the accompanying materials are made available+ −
* under the terms of "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:+ −
*+ −
*/+ −
+ −
#include "MemSpyEngineHelperSysMemTrackerEntries.h"+ −
+ −
// System includes+ −
#include <e32base.h>+ −
#include <badesca.h>+ −
+ −
// Driver includes+ −
#include <memspy/driver/memspydriverclient.h>+ −
+ −
// User includes+ −
#include <memspy/engine/memspyengine.h>+ −
#include <memspy/engine/memspyengineutils.h>+ −
#include <memspy/engine/memspyenginehelperheap.h>+ −
#include <memspy/engine/memspyenginehelperchunk.h>+ −
#include <memspy/engine/memspyengineobjectthread.h>+ −
#include <memspy/engine/memspyengineobjectprocess.h>+ −
#include <memspy/engine/memspyengineobjectcontainer.h>+ −
#include <memspy/engine/memspyenginehelpercodesegment.h>+ −
#include "MemSpyEngineHelperSysMemTrackerImp.h"+ −
#include <memspy/engine/memspyenginehelpersysmemtrackercycle.h>+ −
#include <memspy/engine/memspyenginehelpersysmemtrackerconfig.h>+ −
+ −
+ −
+ −
+ −
CMemSpyEngineHelperSysMemTrackerEntry::CMemSpyEngineHelperSysMemTrackerEntry( CMemSpyEngineHelperSysMemTrackerImp& aTracker, TMemSpyEngineSysMemTrackerType aType )+ −
: iTracker( aTracker ), iType( aType )+ −
{+ −
// Entry starts out alive - this also updates it's timestamp+ −
SetAlive();+ −
+ −
// Entry starts out new by default+ −
SetNew( ETrue );+ −
}+ −
+ −
+ −
TUint64 CMemSpyEngineHelperSysMemTrackerEntry::Key() const+ −
{+ −
const TUint32 val = ( Type() << 28 ); + −
TUint64 ret = val;+ −
ret <<= 32;+ −
ret += Handle();+ −
return ret;+ −
}+ −
+ −
+ −
void CMemSpyEngineHelperSysMemTrackerEntry::HandleNewCycleL( CMemSpyEngineHelperSysMemTrackerCycle& aCycle )+ −
{+ −
__ASSERT_ALWAYS( !( IsNew() && IsDead() ), User::Panic(_L("MemSpySysMemT"), __LINE__ ) );+ −
+ −
// First of all, if the item is not dead, then we can update the cycle stats+ −
if ( IsAlive() )+ −
{+ −
UpdateCycleStatistics( aCycle );+ −
}+ −
+ −
// We create change descriptors only if the item has changed state in some way.+ −
// I.e.:+ −
//+ −
// 1) If the entry is new or is dead, then we will require a change descriptor.+ −
// 2) If the entry has changed, we'll require a change descriptor.+ −
//+ −
// Case (1)+ −
if ( IsNew() || IsDead() )+ −
{+ −
CreateChangeDescriptorL( aCycle );+ −
}+ −
else+ −
{+ −
// Case (2) + −
const TBool hasChanged = HasChangedL( aCycle.Config() );+ −
if ( hasChanged )+ −
{+ −
CreateChangeDescriptorL( aCycle );+ −
}+ −
}+ −
}+ −
+ −
+ −
CMemSpyEngine& CMemSpyEngineHelperSysMemTrackerEntry::Engine()+ −
{+ −
return iTracker.Engine();+ −
}+ −
+ −
+ −
void CMemSpyEngineHelperSysMemTrackerEntry::UpdateTime()+ −
{+ −
iLastUpdateTime.HomeTime();+ −
}+ −
+ −
+ −
void CMemSpyEngineHelperSysMemTrackerEntry::UpdateFromL( const CMemSpyEngineHelperSysMemTrackerEntry& /*aEntry*/ )+ −
{+ −
}+ −
+ −
+ −
TBool CMemSpyEngineHelperSysMemTrackerEntry::HasChangedL( const TMemSpyEngineHelperSysMemTrackerConfig& /*aConfig*/ ) const+ −
{+ −
// This item does not internally change state once created+ −
return EFalse;+ −
}+ −
+ −
+ −
void CMemSpyEngineHelperSysMemTrackerEntry::CreateChangeDescriptorL( CMemSpyEngineHelperSysMemTrackerCycle& /*aCycle*/ )+ −
{+ −
}+ −
+ −
+ −
void CMemSpyEngineHelperSysMemTrackerEntry::UpdateCycleStatistics( CMemSpyEngineHelperSysMemTrackerCycle& /*aCycle*/ )+ −
{+ −
}+ −
+ −
+ −
+ −
+ −
+ −
+ −
+ −