diff -r 000000000000 -r 08ec8eefde2f traceservices/commsdebugutility/INC/comsdbgaux.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/traceservices/commsdebugutility/INC/comsdbgaux.h Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,152 @@ +// Copyright (c) 1997-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: +// Flogger (File and Serial logger) utils header +// +// + +/** + @file + @internalTechnology +*/ + +#ifndef __COMSDBGAUX_H__ +#define __COMSDBGAUX_H__ + +#include +#include "comsdbgsvr.h" + +class CFileLoggerServer; +class RFs; + + +class CIniFileWatcher : public CActive + { +public: + static CIniFileWatcher* NewL(RFs& aFs, CFileLoggerServer& aServer, const TDesC& aIniFile); + //From CActive + virtual void RunL(); + virtual void DoCancel(); + ~CIniFileWatcher(); +private: + CIniFileWatcher(RFs& aFs, CFileLoggerServer& aServer, const TDesC& aIniFile); + void Initialize(); + void NotifyChange(); +private: + RFs& iFs; + CFileLoggerServer& iServer; + TFullName iWatchedIniFile; + }; + +class MLogArrayAccess; + +class CTimeManager : public CBase, public MBeating + { +public: + static CTimeManager* NewL(MLogArrayAccess& aArrayAccess); + //From MBeating + virtual void Beat(); + virtual void Synchronize(); + ~CTimeManager(); +private: + CTimeManager(MLogArrayAccess& aArrayAccess); + void ConstructL(); + void SendTimeUpdate(); +private: + MLogArrayAccess& iArrayAccess; + CHeartbeat* iHeartbeat; + TTime iTime; + }; + +class MIniFlushModeAndLogValidQuery + { +public: + virtual TBool LogValid(const TDesC8& aSubsystem, const TDesC8& aComponent) const = 0; + virtual void FlushingOn(TBool& aFlushOn) const = 0; + }; + +class MIniLoggingMediaQuery + { +public: + virtual void LogMediaSetting(TDes8& aString) const = 0; + virtual void FlushingOn(TBool& aFlushOn) const = 0; + virtual void LogPathSetting(TDes8& aString) const = 0; + }; + + + +class CSubsystemSettings : public CBase + { +public: + CSubsystemSettings(const TDesC8& aName); +public: + ~CSubsystemSettings(); + void SetSubsystemName(const TDesC8& aName); + TInt AddComponent(const TDesC8& aComponent); + static TInt CompareCSubsystemSettings(const CSubsystemSettings& aFirst, const CSubsystemSettings& aSecond); + static TInt CompareTComponent(const TNameTag& aFirst, const TNameTag& aSecond); + void SetWildCarded(TBool aWildCarded); + TBool IsWildCarded() const {return iSubsystemWildcarded;} + TBool ElementExistsInArray(const TDesC8& aComponent) const ; +private: + TBool iSubsystemWildcarded; + TNameTag iSubsystemName; + RArray iComponentArray; + }; + +class CIniLoggingPairs : public CBase + { +public: + static CIniLoggingPairs* NewL(); + void AddSettingL(const TDesC8& aSubsystem, const TDesC8& aComponent); + ~CIniLoggingPairs(); + TBool SettingValid(const TDesC8& aSubSystem, const TDesC8& aComponent) const; +private: + CIniLoggingPairs() + { } +private: + RPointerArray iSubsystems; + CSubsystemSettings* iProbeSubsystem; + }; + +class CIniFileParser : public CBase, public MIniFlushModeAndLogValidQuery, public MIniLoggingMediaQuery + { +public: + static CIniFileParser* NewL(RFs& aFs); + ~CIniFileParser(); + TInt ParseIniFile(TDesC& aIniFile); + //From MIniFlushModeAndLogValidQuery + virtual TBool LogValid(const TDesC8& aSubsystem, const TDesC8& aComponent) const; + //From MiniLoggingMediaQuery + virtual void LogMediaSetting(TDes8& aString) const; + virtual void LogPathSetting(TDes8& aString) const; + // From MIniFlushModeAndLogValidQuery and MiniLoggingMediaQuery + virtual void FlushingOn(TBool& aFlushOn) const; + void FinaliseFlushSetting(); + TBool Win32DebugEnabled() const { return iWin32DebugEnabled; } +private: + CIniFileParser(RFs& aFs); + void DoParseIniFileL(TDesC& aIniFile); + TInt GetNextTokenAndCheck(TLex8& lex, TPtr8& tempPtr); +private: + RFs& iFs; + TBuf8 iLoggingMediaString; + TFlushStates iForceFlushState; + TBool iWin32DebugEnabled; + //iIniSettings == NULL <==> bad ini file, logging is off and client has been told. + CIniLoggingPairs* iIniSettings; + TFilePath iLoggingPathString; + }; + +#endif //__COMSDBGAUX_H__ +