memana/analyzetoolclient/dynamicmemoryhook/inc/analyzetoolallocator.h
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:51:35 +0200
changeset 0 f0f2b8682603
permissions -rw-r--r--
Add initial version of AnalyzeTool client under EPL
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     1
/*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     8
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    11
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    12
* Contributors:
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    13
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    14
* Description:  Declaration of the class RAnalyzeToolAllocator.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    15
*
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    16
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    17
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    18
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    19
#ifndef ANALYZETOOLALLOCATOR_H
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    20
#define ANALYZETOOLALLOCATOR_H
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    21
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    22
// INCLUDES
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    23
#include <u32std.h>
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    24
#include "codeblock.h"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    25
#include "threadstack.h"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    26
#include "analyzetoolmemoryallocator.h"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    27
#include <analyzetool/atstorageserverclnt.h>
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    28
#include <analyzetool/analyzetool.h>
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    29
#include <analyzetool/atcommon.h>
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    30
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    31
// CLASS DECLARATION
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    32
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    33
/**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    34
*  Class which overloads the RAlloctor functions and provides access to 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    35
*  the overloaded functions  
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    36
*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    37
class RAnalyzeToolAllocator : public RAnalyzeToolMemoryAllocator
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    38
    {
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    39
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    40
    public:
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    41
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    42
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    43
        * C++ default constructor.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    44
        * @param aNotFirst Is this first thread using this heap
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    45
        * @param aStorageServer A reference to the 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    46
        *                       <code>RATStorageServer</code> which is 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    47
        *                       used to store kernel events
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    48
        * @param aCodeblocks A reference to array of code segments
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    49
        * @param aMutex A reference to mutex for schedule access to the 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    50
        *                   shared resources
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    51
        * @param aProcessId A reference to the observed process id
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    52
        * @param aAnalyzeTool Reference to device driver
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    53
        * @param aStorageServerOpen Variable to check if Storage server is connected
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    54
        * @param aLogOption The logging option for storage server
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    55
        * @param aAllocCallStackSize Max number of stored callstack items when memory allocated
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    56
        * @param aFreeCallStackSize Max number of stored callstack items when memory freed
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    57
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    58
        RAnalyzeToolAllocator( TBool aNotFirst,
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    59
                               RATStorageServer& aStorageServer, 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    60
                               RArray<TCodeblock>& aCodeblocks, 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    61
                               RMutex& aMutex, 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    62
                               TUint aProcessId,
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    63
                               RAnalyzeTool& aAnalyzeTool,
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    64
                               TBool aStorageServerOpen,
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    65
                               TUint32 aLogOption,
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    66
                               TUint32 aAllocCallStackSize,
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    67
                               TUint32 aFreeCallStackSize );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    68
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    69
        * Destructor.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    70
        */                     
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    71
        ~RAnalyzeToolAllocator();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    72
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    73
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    74
        * Allocates a cell of specified size from the heap.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    75
        * @param aSize The size of the cell to be allocated from the heap. 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    76
        * @return TAny* A pointer to the allocated cell.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    77
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    78
        TAny* Alloc( TInt aSize );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    79
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    80
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    81
        * Frees the specified cell and returns it to the heap.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    82
        * @param aPtr A pointer to a cell to be freed.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    83
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    84
        void Free( TAny* aPtr );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    85
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    86
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    87
        * Increases or decreases the size of an existing cell.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    88
        * @param aPtr A pointer to the cell to be reallocated.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    89
        * @param aSize The new size of the cell. This may be bigger 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    90
        *              or smaller than the size of the original cell.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    91
        * @param aMode Flags controlling the reallocation.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    92
        * @return TAny* A pointer to the reallocated cell. This may be the 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    93
        *               same as the original pointer supplied through aCell.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    94
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    95
        //lint --e{1735} suppress "Virtual function has default parameter"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    96
        TAny* ReAlloc( TAny* aPtr, TInt aSize, TInt aMode = 0 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    97
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    98
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    99
        * Gets the length of the available space in the specified 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   100
        * allocated cell.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   101
        * @param aCell A pointer to the allocated cell.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   102
        * @return TInt The length of the available space in the allocated cell.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   103
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   104
        TInt AllocLen( const TAny* aCell ) const;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   105
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   106
    #ifndef __KERNEL_MODE__
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   107
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   108
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   109
        * Opens this heap for shared access. Opening the heap increases 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   110
        * the heap's access count by one.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   111
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   112
        TInt Open();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   113
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   114
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   115
        * Closes this shared heap. Closing the heap decreases the heap's 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   116
        * access count by one.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   117
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   118
        void Close();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   119
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   120
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   121
        * The function frees excess committed space from the top of the heap.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   122
        * The size of the heap is never reduced below the minimum size 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   123
        * specified during creation of the heap.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   124
        * @return TInt The space reclaimed. If no space can be reclaimed, 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   125
                       then this value is zero.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   126
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   127
        TInt Compress();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   128
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   129
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   130
        * Frees all allocated cells on this heap. 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   131
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   132
        void Reset();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   133
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   134
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   135
        * Gets the number of cells allocated on this heap, and 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   136
        * the total space allocated to them.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   137
        * @param aTotalAllocSize On return, contains the total 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   138
        *                        space allocated to the cells.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   139
        * @return TInt The number of cells allocated on this heap.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   140
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   141
        TInt AllocSize( TInt& aTotalAllocSize ) const;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   142
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   143
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   144
        * Gets the total free space currently available on the heap and the 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   145
        * space available in the largest free block. The space available 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   146
        * represents the total space which can be allocated. Note that 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   147
        * compressing the heap may reduce the total free space available 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   148
        * and the space available in the largest free block.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   149
        * @param aBiggestBlock On return, contains the space available 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   150
        *                      in the largest free block on the heap.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   151
 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   152
        * @return TInt The total free space currently available on the heap.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   153
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   154
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   155
        TInt Available( TInt& aBiggestBlock ) const;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   156
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   157
    #endif
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   158
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   159
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   160
        * Invocates specified debug funtionality.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   161
        * @param aFunc The debug function
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   162
        * @param a1 Debug function specific paramenter.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   163
        * @param a2 Debug function specific paramenter.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   164
        * @return TInt Returns KErrNone, if successful otherwise one 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   165
        *              of the other system-wide error codes.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   166
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   167
        //lint --e{1735} suppress "Virtual function has default parameter"
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   168
        TInt DebugFunction( TInt aFunc, TAny* a1 = NULL, TAny* a2 = NULL );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   169
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   170
    protected:
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   171
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   172
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   173
        * Extension function
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   174
        * @param aExtensionId The extension id
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   175
        * @param a0 Extension specific paramenter.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   176
        * @param a1 Extension specific paramenter.
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   177
        * @return TInt Returns KErrNone, if successful otherwise one 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   178
        *              of the other system-wide error codes. 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   179
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   180
        TInt Extension_( TUint aExtensionId, TAny*& a0, TAny* a1 );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   181
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   182
    public: // from RAnalyzeToolMemoryAllocator
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   183
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   184
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   185
        * Installs the RTraceAllocator allocator
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   186
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   187
        void Uninstall();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   188
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   189
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   190
        * Shares the heap
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   191
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   192
        void ShareHeap();
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   193
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   194
    private:
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   195
    
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   196
        /**
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   197
        * Find the current thread which is using the heap
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   198
        * @param aStackStart A reference where the stack start is stored
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   199
        * @return TBool ETrue if a thread can be found, EFalse otherwise
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   200
        */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   201
        TBool FindCurrentThreadStack( TUint32& aStackStart );
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   202
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   203
    private: 
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   204
    
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   205
        /* Handle to the storage server*/
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   206
        RATStorageServer& iStorageServer;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   207
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   208
        /* A reference to codeblocks of the observed process */            
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   209
        RArray<TCodeblock>& iCodeblocks;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   210
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   211
        /* The mutex for serializing access to the shared resources */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   212
        RMutex& iMutex;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   213
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   214
        /* The process id */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   215
        TUint iProcessId;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   216
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   217
        /* Array for storing the callstack */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   218
        TFixedArray<TUint32, KATMaxCallstackLength> iCallStack;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   219
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   220
        /* Array for storing the reallocation callstack */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   221
        TFixedArray <TUint32, KATMaxCallstackLength> iReCallStack;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   222
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   223
        /* Array for storing the reallocation callstack */	
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   224
        TFixedArray<TUint32, KATMaxFreeCallstackLength> iFreeCallStack;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   225
                
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   226
        /* Array of threads using this heap */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   227
        RArray<TThreadStack> iThreadArray;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   228
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   229
        RAnalyzeTool& iAnalyzeTool;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   230
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   231
        /* A flag for indicating that the RATStorageServer is open */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   232
        TBool iStorageServerOpen;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   233
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   234
        /* Log option */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   235
        TUint32 iLogOption;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   236
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   237
        /* Max items on stored call stack when memory allocated */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   238
        TUint32 iAllocMaxCallStack;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   239
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   240
        /* Max items on stored call stack when memory freed */
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   241
        TUint32 iFreeMaxCallStack;
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   242
        
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   243
    };
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   244
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   245
#endif // ANALYZETOOLALLOCATOR_H
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   246
f0f2b8682603 Add initial version of AnalyzeTool client under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   247
// End of File