sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Debug definitions designed to be used by client side test apps sl@0: // requiring access to the related special debug features. sl@0: // sl@0: // sl@0: sl@0: #ifndef W32DEBUG_H_ sl@0: #define W32DEBUG_H_ sl@0: sl@0: /** sl@0: @file sl@0: @publishedpartner sl@0: @released sl@0: */ sl@0: sl@0: enum TWsDebugInfoFunc sl@0: { sl@0: EWsDebugInfoHeap=1, sl@0: EWsDebugSetCheckHeapOnDisconnectClient, sl@0: EWsDebugSetCheckHeapOnDisconnectMode, sl@0: EWsDebugFetchCheckHeapResult, sl@0: EWsDebugHeartBeatState, sl@0: EWsDebugSetAutoHeartBeatPauseState, sl@0: EWsDebugSetEventQueueTest, sl@0: sl@0: //Insert more unclassified diagnostics above sl@0: sl@0: EWsDebugUnclassifiedMax, //Please insert new unclassified IDs before this sl@0: sl@0: EWsDebugClassMask= 0xFF000000, sl@0: EWsDebugClassUnclassified= 0x00000000, sl@0: sl@0: EWsDebugClassScreenUiElement= 0x01000000, //specify EWsDebugArgScreenMask sl@0: EWsDebugGetFastpathMode, //return: TInt sl@0: EWsDebugSetFastpathMode, //set new mode in EWsDebugArgExtraMask (use 2-param method) sl@0: EWsDebugGetUIElementInfoList, //return: TInt[[ElementCount], [ElementId, ElementType, IsDisabled] * ElementCount]. sl@0: EWsDebugGetUIElementBase, //return: TRect[] sl@0: EWsDebugSetFastpathTestMode, //return: TBool sl@0: EWsDebugSetFastpathOomMode, //return: TInt sl@0: EWsDebugGetUIElementIds, //return: TInt[] sl@0: EWsDebugGetSceneElementIdOrder, //return: TInt[] sl@0: EWsDebugGetUIElementConfig, //return: TSurfaceConfig //Index UI Element via EWsDebugArgElementMask sl@0: EWsDebugGetUIRegionCommittedTime, //return: TTime sl@0: EWsDebugGetLastOptimizerError, //return: TInt sl@0: EWsDebugGetFastpathTypeDetected, //return: TInt sl@0: sl@0: EWsDebugClassScreenUiElementMax, sl@0: EWsDebugClassScreenElementSet= 0x02000000, //specify EWsDebugArgScreenMask sl@0: EWsDebugSerialSurfacesUpdated, //return: TInt - Note non-param version returns value not length sl@0: EWsDebugSurfaceWindowList, //return: TWsDebugWindowId[] sl@0: sl@0: EWsDebugClassScreenElementMax, sl@0: EWsDebugClassElementSetWindow= 0x03000000, //specify EWsDebugArgScreenMask, EWsDebugArgWindowMask sl@0: EWsDebugElementIdList, //return: TInt[] //entry 0 reserved for background sl@0: EWsDebugBackgroundConfig, //return: TSurfaceConfig sl@0: EWsDebugBackgroundBase, //return: TRect[] sl@0: EWsDebugBackgroundFlags, //return: TInt[2] sl@0: EWsDebugClassElementSetWindowMax, sl@0: EWsDebugClassElementSetElement= 0x04000000, //specify EWsDebugArgScreenMask, EWsDebugArgWindowMask, EWsDebugArgElementMask sl@0: EWsDebugPlacedConfig, //return: TSurfaceConfig sl@0: EWsDebugPlacedBase, //return: TRect[] sl@0: EWsDebugPlacedFlags, //return: TInt[2] sl@0: sl@0: EWsDebugClassElementSetElementMax, sl@0: //next elementset based class sl@0: EWsDebugClassElementNextAvail= 0x05000000, sl@0: sl@0: EWsDebugClassNonScreen= 0x10000000, sl@0: EWsDebugClassClientWindow= 0x11000000, //specify client identifier in aParam. Only owned windows can be accessed. sl@0: //Window diagnostics were not used during development so function ids and code have been removed. sl@0: EWsDebugCliWinGroupIdMask= 0x00FFFF00, sl@0: EWsDebugCliWinGroupIdShift= 16, sl@0: sl@0: }; sl@0: sl@0: struct TWsDebugWindowId sl@0: { //Root window has GroupId of 0x0000ffff, and clientid=screen number... sl@0: TInt iClientId; //Should be unique across all windows per client sl@0: TInt iOtherGroupId; //If zero, the window is owned by the calling RWsSession instance, sl@0: }; //else the wserv generated group ID is enough to map to other sessions. sl@0: sl@0: /** Use these masks with aParam to index the object being accessed sl@0: * sl@0: **/ sl@0: enum TWsDebugClassArgMask sl@0: { sl@0: EWsDebugArgScreenMask= 0x000000ff, sl@0: EWsDebugArgScreenShift= 0, sl@0: EWsDebugArgWindowMask= 0x0000ff00, sl@0: EWsDebugArgWindowShift= 8, sl@0: EWsDebugArgElementMask= 0x00ff0000, sl@0: EWsDebugArgElementShift= 16, sl@0: EWsDebugArgExtraMask= 0xff000000, sl@0: EWsDebugArgExtraShift= 24, sl@0: }; sl@0: sl@0: enum TWsCheckHeapOnDisconnectMode sl@0: { sl@0: EWsCheckHeapOnDisconnectModeNone=1, sl@0: EWsCheckHeapOnDisconnectModeOnce, sl@0: EWsCheckHeapOnDisconnectModeAlways, sl@0: }; sl@0: sl@0: struct TWsDebugHeapInfo sl@0: { sl@0: TInt iCount; sl@0: TInt iTotal; sl@0: TInt iAvailable; sl@0: TInt iLargestAvailable; sl@0: }; sl@0: sl@0: #endif //W32DEBUG_H_