--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/traceservices/tracefw/ulogger/src/sysconfig/sysconfigimpl.h Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,106 @@
+// Copyright (c) 2007-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:
+// ULogger sys config
+//
+//
+
+/**
+ @file
+ @internalTechnology
+ @prototype
+*/
+
+
+#ifndef SYSCONFIGIMPL_H
+#define SYSCONFIGIMPL_H
+
+#include <e32cmn.h>
+#include <f32file.h>
+#include "uloggersysconfig.h"
+#include <bsul/inifile.h>
+#include "uloggershared.h"
+
+
+
+namespace Ulogger
+{
+
+NONSHARABLE_CLASS(CConfigSettingsImpl) : public CBase
+{
+public:
+ /**Standard Symbian OS construction method.*/
+ static CConfigSettingsImpl* NewL();
+
+ TBool Next(TPtrC8& aSetting,TPtrC8& aSettingValue);
+
+ void Reset();
+ /**Destructor.*/
+ ~CConfigSettingsImpl();
+private:
+ friend class CConfigImpl;
+ CConfigSettingsImpl();
+ BSUL::CIniSecIter8* iIniSecIter;
+};
+
+
+NONSHARABLE_CLASS(CConfigImpl) : public CBase
+ {
+public:
+ static CConfigImpl* NewL(RHeap* aHeap,TFileName& aFilename);
+ ~CConfigImpl();
+
+ // Allow Objects to register for configuration change notifications
+
+ //Get operation
+ TInt GetKeyValue(const TDesC8& aSectionName,const TDesC8& aKey,TPtrC8& aValue);
+ TInt GetSection(const TDesC8& aSectionName,CConfigSettingsIter& aSection);
+ TInt GetKeyCount(const TDesC8& aSectionName,TPtrC8& aLastKey);
+
+ //modify operation
+ TInt SetKeyValue(const TDesC8& aSectionName,const TDesC8& aKey, const TDesC8& aValue);
+ TInt RemoveKey(const TDesC8& aSectionName,const TDesC8& aKeyName);
+ TInt RemoveSection(const TDesC8& aSectionName);
+
+ //utils
+ TInt GetPointerToKeyName(const TDesC8& aSectionName,const TDesC8& aKeyName,TPtrC8& aKeyPointer);
+ TInt CheckValueExist(const TDesC8& aSectionName,const TDesC8& aValue,TInt& aKeyCount);
+
+ TInt PersistIniFile();
+ TInt GenerateInternalKey(const TDesC8& aSection,TBuf8<15>& aKeyName);
+ void GetSystemDrive(TDriveName& aSystemDrive);
+
+private:
+ CConfigImpl(RHeap* aHeap,TFileName& aFileName) :
+ iHeap(aHeap),iFileName(aFileName) {}
+ void ConstructL();
+ void LoadConfigFileL();
+ void GetConfigFileName(TFileName& aFileName);
+
+private:
+ /** Mutex for controlling write access */
+ RMutex iWriteMutex;
+ /** Pointer to private heap */
+ RHeap* iHeap;
+ /** Handle to file server */
+ RFs iFs;
+ /** Ini-file parser */
+ BSUL::CIniDocument8* iIniFileDocument;
+
+ TFileName iFileName;
+ };
+
+
+}
+#endif // SYSCONFIGIMPL_H
+