diff -r 7fdc9a71d314 -r 8ad140f3dd41 stif/TestEngine/inc/SettingServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stif/TestEngine/inc/SettingServer.h Wed Oct 13 16:17:58 2010 +0300 @@ -0,0 +1,305 @@ +/* +* 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: This file contains the header file of the +* CSettingServer. +* +*/ + +#ifndef SETTING_SERVER_H +#define SETTING_SERVER_H + +// INCLUDES +#include +#include +#include +#include "Logging.h" +#include "TestEngineClient.h" + +// CONSTANTS + +// Server heap size +const TUint KDefaultHeapSize = 0x10000; // 64 K +const TUint KMaxHeapSize = 0x20000; // 128 K + +// MACROS + +// DATA TYPES + +// Panic reasons +enum TSettingServerPanic + { + EBadRequest, + EBadDescriptor, + EMainSchedulerError, + ESvrCreateServer, + ECreateTrapCleanup, + ENoStartupInformation, + ETooManyCloseSessions, + EPopFromEmptyStack + }; + +// FORWARD DECLARATIONS +// None + +// CLASS DECLARATION + +// DESCRIPTION +// CSettingServer is a server class. +class CSettingServer + :public CServer2 // Inter Process Communication version 2 is used(EKA2) + { + public: // Enumerations + enum { ESettingServerSchedulerPriority = CActive::EPriorityHigh }; + + private: // Enumerations + + public: // Constructors and destructor + + /** + * NewL is first phase of two-phased constructor. + */ + static CSettingServer* NewL( const TName& aName ); + + /** + * Destructor of CSettingServer. + */ + ~CSettingServer(); + + public: // New functions + + /** + * ThreadFunction is used to create new thread. + */ + static TInt ThreadFunction( TAny* aStarted ); + + /** + * PanicServer panics the CSettingServer + */ + static void PanicServer( const TSettingServerPanic aPanic ); + + /** + * Return pointer to the Logger(iSettingServerLogger) + */ + CStifLogger* CSettingServer::Logger(); + + public: // Functions from base classes + + /** + * NewSessionL creates new CSettingServer session. + */ + CSession2* NewSessionL( const TVersion &aVersion, + const RMessage2& aMessage ) const; + /** + * Open session + */ + void OpenSession(); + + /** + * Close session + */ + void CloseSession(); + + protected: // New functions + // None + + protected: // Functions from base classes + // None + + private: + + /** + * C++ default constructor. + */ + CSettingServer(); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + public: //Data + + // NOTE: + // There is one CSettingServer and may be many CLoggerSetting sessions + // so variables are defined here and are available to all sessions. + + // Logger overwrite settings + TLoggerSettings iLoggerSettings; + + // Includes inifile name and path information + TFileName iIniFile; + + // Engine settings + TEngineSettings iEngineSettings; + + protected: // Data + // None + + private: // Data + + // Session counter + TInt iSessions; + + // Logger instance + CStifLogger* iSettingServerLogger; + + public: // Friend classes + // None + + protected: // Friend classes + // None + + private: // Friend classes + // None + + }; + +// DESCRIPTION +// CLoggerSetting is a session class. +// Session for the CSettingServer server, to a single client-side session +// a session may own any number of CCounter objects + +class CLoggerSetting + :public CSession2 + { + public: + // None + + private: // Enumerations + // None + + public: // Constructors and destructor + + /** + * Construct a clean-up server session + */ + static CLoggerSetting* NewL( CSettingServer* aServer ); + + /** + * Destructor + */ + virtual ~CLoggerSetting(); + + public: // New functions + + /** + * Dispatch message + */ + TInt DispatchMessageL( const RMessage2& aMessage, + TBool& aIsMessageSync ); + + /** + * Close the session to CSettingpServer. + */ + TInt CloseSession( /*const RMessage& aMessage*/ ); + + /** + * Read Logger setting from initialization file. Mainly use from + * TestEngine side. + */ + TInt ReadLoggerSettingsFromIniFile( const RMessage2& aMessage ); + + /** + * Set initialization filename and path settings to Setting server. + */ + TInt SetIniFileSettings( const RMessage2& aMessage ); + + /** + * Get Logger settings. Mainly use from Logger side. + */ + TInt GetLoggerSettings( const RMessage2& aMessage ); + + /** + * + */ + TInt SetNewIniFileSetting( const RMessage2& aMessage ); + + /** + * PanicClient panics the user of CLoggerSetting + */ + void PanicClient( TInt aPanic, const RMessage2& aMessage ) const; + + /** + * Get test engine settings + */ + TInt GetEngineSettings(const RMessage2& aMessage); + + /** + * Set (store) test engine settings + */ + TInt StoreEngineSettings(const RMessage2& aMessage); + + public: // Functions from base classes + + /** + * ServiceL handles the messages to CSettingServer + */ + virtual void ServiceL( const RMessage2& aMessage ); + + protected: // New functions + // None + + protected: // Functions from base classes + // None + + private: + + /** + * C++ default constructor. + */ + CLoggerSetting(); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL( CSettingServer* aServer ); + + /** + * Real resource reservation routine + */ + TInt ReserveInternalL( const RMessage2& aMessage ); + + /** + * Read Logger default parameters for initialization file. + */ + TInt ReadLoggerDefaults(); + + public: // Data + // None + + protected: // Data + // None + + private: // Data + + // Pointer to "parent" + CSettingServer* iSettingServer; + + // Indication for reading logger defaults from initialization file. + TBool iReadOrUpdateLoggerDefaults; + + public: // Friend classes + // None + + protected: // Friend classes + // None + + private: // Friend classes + // None + + }; + +#endif // SETTING_SERVER_H + +// End of File