/*
* 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:  Definitions for the class RAnalyzeToolMemoryAllocator.
*
*/


#include "analyzetoolmemoryallocator.h"
#include "analyzetoolpanics.pan"
#include "atlog.h"

// -----------------------------------------------------------------------------
// RAnalyzeToolMemoryAllocator::RAnalyzeToolMemoryAllocator()
// C++ default constructor.
// -----------------------------------------------------------------------------
//
RAnalyzeToolMemoryAllocator::RAnalyzeToolMemoryAllocator( TBool aNotFirst ) :
    RAllocator(),
    iNotFirst( aNotFirst )/*,
    iStorageServerOpen( EFalse )*/
    {
    LOGSTR1( "ATMH RAnalyzeToolMemoryAllocator::RAnalyzeToolMemoryAllocator()" );
    
    // Acquire the original allocator
    iAllocator = &User::Allocator(); 
    
    // Set memory model zero
    iMemoryModel = 0;
    }

// -----------------------------------------------------------------------------
// RAnalyzeToolMemoryAllocator::~RAnalyzeToolMemoryAllocator()
// Destructor.
// -----------------------------------------------------------------------------
//
RAnalyzeToolMemoryAllocator::~RAnalyzeToolMemoryAllocator()
    {
    LOGSTR1( "ATMH RAnalyzeToolMemoryAllocator::~RAnalyzeToolMemoryAllocator()" );
    
    // Call switching orinigal allocator back.
    // Just in case, if uninstall was not called.
    SwitchOriginalAllocator();
    }
    
// -----------------------------------------------------------------------------
// RAnalyzeToolMemoryAllocator::SwitchOriginalAllocator()
// Switches original allocator in use if not already.
// -----------------------------------------------------------------------------
//
void RAnalyzeToolMemoryAllocator::SwitchOriginalAllocator()
    {
    LOGSTR1( "ATMH RAnalyzeToolMemoryAllocator::SwitchOriginalAllocator()" );
    
    if ( iAllocator != &User::Allocator() )
        {
        User::SwitchAllocator( iAllocator );
        }
    }

// End of File
