diff -r d27dfa8884ad -r da2cedce4920 piprofiler/plugins/GeneralsPlugin/inc/GeneralsPlugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/piprofiler/plugins/GeneralsPlugin/inc/GeneralsPlugin.h Tue May 25 14:22:58 2010 +0300 @@ -0,0 +1,147 @@ +/* +* 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: +* +*/ + + +#ifndef PROFILER_GENERALSECOM_SAMPLER_H +#define PROFILER_GENERALSECOM_SAMPLER_H + +#include + +#include "GeneralsDriver.h" +#include "GeneralsConfig.h" +#include +#include + +// constants +const TUint KDefaultOutputCombination = 3; + +const TUint KSubSamplerCount = 5; + +// parent itself +_LIT(KGENShortName, "gen"); +_LIT(KGENMediumName, "Generic samplers plug-in"); +_LIT(KGENLongName, "Generic samplers plug-in"); + +// gpp caption definitions +_LIT8(KGPPShortName, "gpp"); +#ifdef CARBIDE_NAMES +_LIT8(KGPPLongName, "Address/Thread sampling"); +#else +_LIT8(KGPPLongName, "CPU load sampler"); +#endif +_LIT8(KGPPDescription, "CPU load sampler\nSampling thread and process load\nHW dep: N/A\nSW dep: S60 3.0\n"); + +// gfc caption definitions +_LIT8(KGFCShortName, "gfc"); +#ifdef CARBIDE_NAMES +_LIT8(KGFCLongName, "Function call sampling"); +#else +_LIT8(KGFCLongName, "Function call sampler"); +#endif +_LIT8(KGFCDescription, "Function call sampler\nCapturing function call info\nHW dep: N/A\nSW dep: S60 3.0\n"); + +// itt caption definitions +_LIT8(KITTShortName, "itt"); +#ifdef CARBIDE_NAMES +_LIT8(KITTLongName, "Dynamic binary support"); +#else +_LIT8(KITTLongName, "Dynamic binary sampler"); +#endif +_LIT8(KITTDescription, "Dynamic binary sampler\nTracing dynamically loaded binaries, e.g. from ROFS\nHW dep: N/A\nSW dep: S60 3.0\n"); + +// mem caption definitions +_LIT8(KMEMShortName, "mem"); +#ifdef CARBIDE_NAMES +_LIT8(KMEMLongName, "Memory usage sampler"); +#else +_LIT8(KMEMLongName, "Memory trace sampler"); +#endif +_LIT8(KMEMDescription, "Memory trace sampler\nTracing memory, i.e. stack and chunk usage\nHW dep: N/A\nSW dep: S60 3.0\n"); + +// pri caption definitions +_LIT8(KPRIShortName, "pri"); +#ifdef CARBIDE_NAMES +_LIT8(KPRILongName, "Thread priority sampling"); +#else +_LIT8(KPRILongName, "Priority trace sampler"); +#endif +_LIT8(KPRIDescription, "Priority trace sampler\nTracing thread priorities\nHW dep: N/A\nSW dep: S60 3.0\n"); + + +// forward definitions +class CConfigInfoArray; +class CProfilerBufferHandler; +class CProfilerSampleStream; +class TSamplerAttributes; + +class CGeneralsPlugin : public CSamplerPluginInterface +{ +public: + static CGeneralsPlugin* NewL(const TUid aImplementationUid, TAny* /*aInitParams*/); + ~CGeneralsPlugin(); + + TUint32 GetSampleTime(); + + /* + * Sub sampler specific functions + * + */ + + // from CSamplerPluginInterface + TInt ResetAndActivateL(CProfilerSampleStream& aStream); + TInt StopSampling(); + TBool Enabled() { return iEnabled; } + + TUid Id( TInt aSubId ) const; + TInt SubId( TUid aSubId ) const; // internal + + void GetAttributesL(CArrayFixFlat* aAttributes); + TInt SetAttributesL(TSamplerAttributes aAttributes); + void InitiateSamplerAttributesL(); + + TInt ConvertRawSettingsToAttributes(CDesC8ArrayFlat* aSingleSettingArray); + TInt DoSetSamplerSettings(CDesC8ArrayFlat* aAllSettings, TDesC8& aSamplerName, TInt aIndex); + void SaveSettingToAttributes(const TDesC8& aSetting, TInt aIndex); + + TInt GetSamplerType(); + + void InstallStreamForActiveTraces(RGeneralsSampler& sampler, CProfilerSampleStream& aStream); + +private: + CGeneralsPlugin(); + void ConstructL(); + + TInt InitiateSamplerL(); + TInt CleanSampler(); + void SetSettingsToSamplers(); + +private: + TUint8 iVersion[20]; + TPtr8 iVersionDescriptor; + + RGeneralsSampler iGeneralsSampler; + + CProfilerBufferHandler* iBufferHandler; + + CArrayFixFlat* iSamplerAttributes; + + TBuf8<9> iSearchTexts; +public: + TUint32* iSampleTime; +}; + +#endif