diff -r 67c6ff54ec25 -r a009639409f5 piprofiler/piprofiler_plat/inc/ProfilerAttributes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/piprofiler/piprofiler_plat/inc/ProfilerAttributes.h Thu May 27 14:26:55 2010 +0300 @@ -0,0 +1,151 @@ +/* +* 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_ATTRIBUTES_H +#define PROFILER_ATTRIBUTES_H + +// INCLUDES +#include +#include +#include + +// LITERALS +_LIT8(KDefaultTraceFilePrefix, "PIProfiler_#"); +_LIT8(KDefaultTraceOutput, "file_system"); +_LIT8(KDefaultTraceFileSaveDrive, "C:\\data\\"); + +_LIT8(KEnabled, "enabled"); +_LIT8(KBracketOpen, "["); +_LIT8(KBracketClose, "]"); +_LIT8(KSettingItemSeparator, "="); + +// CONSTANTS +const TUint KPrefixMaxLength = 64; +const TUint KShortNameMaxLength = 3; +const TUint KNameMaxLength = 63; +const TUint KDescriptionMaxLength = 255; +const TInt KDefaultTimedSamplingPeriod = 60; // Sampling time in seconds +/* + * + * TGeneralAttributes class definition, internal settings format + * + */ +class TGeneralAttributes + { +public: + TBuf8 iTraceOutput; + TBuf8 iTraceFilePrefix; + TBuf8 iSaveFileDrive; + TInt iTimedSamplingPeriod; + }; + + + +/* + * + * TSettingItem class definition, internal settings format + * + */ +class TSettingItem + { +public: + enum + { + ESettingItemTypeInt = 0, + ESettingItemTypeBool, + ESettingItemTypeHex, + ESettingItemTypeText + }; + +public: + TBuf<64> iSettingText; + TUint32 iType; + TBuf<128> iValue; + TBuf<256> iSettingDescription; + TBuf<64> iUIText; + }; +/* + * + * TSamplerAttributes class definition, internal settings format + * + */ +class TSamplerAttributes + { +public: + // default constructor + TSamplerAttributes(); + // constructor + TSamplerAttributes(TInt32 aUid, + const TDesC8& aShortName, + const TDesC8& aName, + const TDesC8& aDescription, + TInt aSampleRate, + TBool aEnabled, + TBool aHidden, + TInt aItemCount); +public: + TInt32 iUid; + TBuf8<8> iShortName; // name of the plugin, short name + TBuf8<64> iName; // name of the plugin, long name + TBuf8<256> iDescription; // sampler description, info about HW/SW dependencies etc. + TInt iSampleRate; // sample rate of the plugin + TBool iEnabled; // enabled for profiling + TBool iIsHidden; // hidden, i.e. no start/stop controls + TInt iItemCount; // plugin specific setting item count + + // plugin specific settings, plugin implementation dependent + TSettingItem iSettingItem1; + TSettingItem iSettingItem2; + TSettingItem iSettingItem3; + TSettingItem iSettingItem4; + TSettingItem iSettingItem5; + TSettingItem iSettingItem6; + }; + +inline TSamplerAttributes::TSamplerAttributes() + {} + +inline TSamplerAttributes::TSamplerAttributes(TInt32 aUid, + const TDesC8& aShortName, + const TDesC8& aName, + const TDesC8& aDescription, + TInt aSampleRate, + TBool aEnabled, + TBool aHidden, + TInt aItemCount) + { + iUid = aUid; + // check if given short name too long + aShortName.Length() > KShortNameMaxLength ? + iShortName.Copy(aShortName.Left(KShortNameMaxLength)) : + iShortName.Copy(aShortName); + // check if given name too long + aName.Length() > KNameMaxLength ? + iName.Copy(aName.Left(KNameMaxLength)) : + iName.Copy(aName); + // check if description too long + aDescription.Length() > KDescriptionMaxLength ? + iDescription.Copy(aDescription.Left(KDescriptionMaxLength)) : + iDescription.Copy(aDescription); + iSampleRate = aSampleRate; + iEnabled = aEnabled; + iIsHidden = aHidden; + iItemCount = aItemCount; + } + +#endif