diff -r 2e3d3ce01487 -r 0fdb7f6b0309 sysresmonitoring/oommonitor/inc/oomconfigparser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysresmonitoring/oommonitor/inc/oomconfigparser.h Fri Feb 19 22:58:54 2010 +0200 @@ -0,0 +1,123 @@ +/* +* Copyright (c) 2006 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: The parser for the OOM configuration file. +* +*/ + + +#ifndef OOMCONFIGPARSER_H_ +#define OOMCONFIGPARSER_H_ + +#include + +using namespace Xml; + +class COomConfig; +class COomRunPluginConfig; + +/** + * Parser for the Oom Monitor configuration file + * + * @lib oommonitor.lib + * @since S60 v5.0 + */ +NONSHARABLE_CLASS(COomConfigParser) : public CBase, public MContentHandler + { +public: + COomConfigParser(COomConfig& aConfig, RFs& aFs); + + void ParseL(); + + + // From MContent handler + virtual void OnStartDocumentL(const RDocumentParameters& aDocParam, TInt aErrorCode); + virtual void OnEndDocumentL(TInt aErrorCode); + virtual void OnStartElementL(const RTagInfo& aElement, const RAttributeArray& aAttributes, + TInt aErrorCode); + virtual void OnEndElementL(const RTagInfo& aElement, TInt aErrorCode); + virtual void OnContentL(const TDesC8& aBytes, TInt aErrorCode); + virtual void OnStartPrefixMappingL(const RString& aPrefix, const RString& aUri, + TInt aErrorCode); + virtual void OnEndPrefixMappingL(const RString& aPrefix, TInt aErrorCode); + virtual void OnIgnorableWhiteSpaceL(const TDesC8& aBytes, TInt aErrorCode); + virtual void OnSkippedEntityL(const RString& aName, TInt aErrorCode); + virtual void OnProcessingInstructionL(const TDesC8& aTarget, const TDesC8& aData, + TInt aErrorCode); + virtual void OnError(TInt aErrorCode); + virtual TAny* GetExtendedInterface(const TInt32 aUid); + + + +private: + + void ConfigError(TInt aError); + + + + void StartElementL(const TDesC8& aLocalName, + const RAttributeArray& aAttributes); + + void SetGlobalSettings(const RAttributeArray& aAttributes); + void SetForceCheckConfigL(const RAttributeArray& aAttributes); + void SetAppConfigL(const RAttributeArray& aAttributes); + void SetCloseAppConfigL(const RAttributeArray& aAttributes); + void SetAppCloseIdlePriorityConfigL(const RAttributeArray& aAttributes); + void SetForegroundAppPriorityL(const RAttributeArray& aAttributes); + + void SetSystemPluginConfigL(const RAttributeArray& aAttributes); + void SetAppPluginConfigL(const RAttributeArray& aAttributes); + void SetPluginIdlePriorityL(const RAttributeArray& aAttributes); + void SetPluginForegroundAppPriorityL(const RAttributeArray& aAttributes); + + TInt GetValueFromAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TPtrC8& aValue); + TInt GetValueFromHexAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue); + TInt GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TUint& aValue); + TInt GetValueFromDecimalAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TInt& aValue); + TInt GetValueFromBooleanAttributeList(const RAttributeArray& aAttributes, const TDesC8& aName, TBool& aValue); + + void SetPluginSyncMode(const RAttributeArray& aAttributes, COomRunPluginConfig& aRunPluginConfig); + + enum TOomParsingState + { + EOomParsingStateNone, + EOomParsingStateRoot, + EOomParsingStateGlobalSettings, + EOomParsingStateAppSettings, + EOomParsingStateAppCloseSettings, + EOomParsingStateSystemPluginSettings, + EOomParsingStateAppPluginSettings + }; + + // Check that the current state is as expected + // If not then the specified config error is generated + void CheckState(TOomParsingState aExpectedState, TInt aError); + + // Check that the current state is as expected + // If not then the specified config error is generated + // This version checks to ensure that the current state matches either of the passed in states + void CheckState(TOomParsingState aExpectedState1, TOomParsingState aExpectedState2, TInt aError); + + COomConfig& iConfig; + + RFs& iFs; + + void ChangeState(TOomParsingState aState); + + TOomParsingState iState; + + TUint iParentUid; + TUint iParentTargetApp; + }; + +#endif /*OOMCONFIGPARSER_H_*/