memspy/MemSpyClient/inc/memspyapikernelobjectitem.h
branchRCL_3
changeset 21 52e343bb8f80
parent 20 ca8a1b6995f6
child 22 e26895079d7c
equal deleted inserted replaced
20:ca8a1b6995f6 21:52e343bb8f80
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 * Contains the declaration of  CMemSpyProcess class 
       
    16 */
       
    17 
       
    18 #ifndef MEMSPYAPIKERNELOBJECTITEM_H
       
    19 #define MEMSPYAPIKERNELOBJECTITEM_H
       
    20 
       
    21 // System includes
       
    22 #include <e32base.h>
       
    23 #include <memspy/driver/memspydriverenumerationsshared.h>
       
    24 
       
    25 class TMemSpyDriverHandleInfoGeneric;
       
    26 //class TMemSpyDriverContainerType;	
       
    27 //class TMemSpyDriverTimerType;
       
    28 //class TMemSpyDriverTimerState;
       
    29 
       
    30 NONSHARABLE_CLASS( CMemSpyApiKernelObjectItem ) 
       
    31 	{
       
    32 public:
       
    33 	IMPORT_C ~CMemSpyApiKernelObjectItem();
       
    34 	
       
    35 	static CMemSpyApiKernelObjectItem* NewL(const TMemSpyDriverHandleInfoGeneric& aData);
       
    36 
       
    37 	static CMemSpyApiKernelObjectItem* NewLC(const TMemSpyDriverHandleInfoGeneric& aData);
       
    38 	
       
    39 public:	
       
    40 	
       
    41 	IMPORT_C const TDesC8& Name() const;	
       
    42 	
       
    43 	IMPORT_C TAny* Handle() const;
       
    44 	
       
    45 	IMPORT_C TMemSpyDriverContainerType Type() const;
       
    46 	
       
    47     // For Process, thread, chunk (owning process id), server (owning thread id)
       
    48     IMPORT_C TInt Id() const;
       
    49 
       
    50     // For Chunk, Library
       
    51     IMPORT_C TUint32 Size() const;
       
    52    
       
    53     // For Semaphore, Mutex, Server
       
    54     IMPORT_C TInt Count() const;
       
    55 
       
    56     // For Mutex
       
    57     IMPORT_C TInt WaitCount() const;
       
    58 
       
    59     // For Server, Session
       
    60     IMPORT_C TIpcSessionType SessionType() const;
       
    61 
       
    62     // For Timer
       
    63     IMPORT_C TMemSpyDriverTimerType TimerType() const;
       
    64     IMPORT_C TMemSpyDriverTimerState TimerState() const;
       
    65 
       
    66     // For Logical channel
       
    67     IMPORT_C TInt OpenChannels();
       
    68     
       
    69     // For most of the object types
       
    70     IMPORT_C const TDesC8& NameDetail() const; // Name
       
    71     IMPORT_C TInt AccessCount() const;
       
    72     IMPORT_C TInt UniqueID() const;
       
    73     IMPORT_C TUint Protection() const;
       
    74     IMPORT_C TUint8* AddressOfKernelOwner();
       
    75     IMPORT_C TInt Priority() const;
       
    76     IMPORT_C TUint8* AddressOfOwningProcess();
       
    77     IMPORT_C TUint CreatorId() const;
       
    78     IMPORT_C TUint SecurityZone() const;
       
    79     IMPORT_C TInt Attributes() const;
       
    80     IMPORT_C TUint8* AddressOfDataBssStackChunk();
       
    81 
       
    82     // For Server, Session
       
    83     IMPORT_C TUint8* AddressOfOwningThread();
       
    84     IMPORT_C TUint8* AddressOfServer();
       
    85     IMPORT_C TUint16 TotalAccessCount() const;
       
    86     IMPORT_C TUint8 SvrSessionType() const;
       
    87     IMPORT_C TInt MsgCount() const;
       
    88     IMPORT_C TInt MsgLimit() const;
       
    89     
       
    90     // For chunk
       
    91     IMPORT_C TInt MaxSize() const;
       
    92     IMPORT_C TInt Bottom() const;
       
    93     IMPORT_C TInt Top() const;
       
    94     IMPORT_C TInt StartPos() const;
       
    95     IMPORT_C TUint ControllingOwner() const;
       
    96     IMPORT_C TUint Restrictions() const;
       
    97     IMPORT_C TUint MapAttr() const;
       
    98     IMPORT_C TUint ChunkType() const;
       
    99     IMPORT_C const TDesC8& NameOfOwner() const; // chunk, server
       
   100     
       
   101     // For library
       
   102     IMPORT_C TInt MapCount() const;
       
   103     IMPORT_C TUint8 State() const;
       
   104     IMPORT_C TUint8* AddressOfCodeSeg();
       
   105     
       
   106     // Semaphore, mutex, condvar
       
   107     IMPORT_C TUint8 Resetting() const;
       
   108     IMPORT_C TUint8 Order() const;
       
   109     
       
   110     // For Logical/Physical device
       
   111     IMPORT_C TVersion Version() const;
       
   112     IMPORT_C TUint ParseMask() const;
       
   113     IMPORT_C TUint UnitsMask() const;
       
   114     
       
   115     // For change notifier
       
   116     IMPORT_C TUint Changes() const;
       
   117 	
       
   118 private:
       
   119 	CMemSpyApiKernelObjectItem();
       
   120 	
       
   121 	void ConstructL(const TMemSpyDriverHandleInfoGeneric& aData);
       
   122 		
       
   123 private:
       
   124 	TMemSpyDriverHandleInfoGeneric *iItem;
       
   125 };
       
   126 
       
   127 	
       
   128 #endif // MEMSPYAPIKERNELOBJECTITEM_H