os/ossrv/stdcpp/tsrc/BC/apps/BCThread/src/BCThread.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:       
    15 *
    16 */
    17 
    18 
    19 
    20 // INCLUDE FILES
    21 #include <Stiftestinterface.h>
    22 #include "BCThread.h"
    23 #include <SettingServerClient.h>
    24 
    25 // EXTERNAL DATA STRUCTURES
    26 //extern  ?external_data;
    27 
    28 // EXTERNAL FUNCTION PROTOTYPES  
    29 //extern ?external_function( ?arg_type,?arg_type );
    30 
    31 // CONSTANTS
    32 //const ?type ?constant_var = ?constant;
    33 
    34 // MACROS
    35 //#define ?macro ?macro_def
    36 
    37 // LOCAL CONSTANTS AND MACROS
    38 //const ?type ?constant_var = ?constant;
    39 //#define ?macro_name ?macro_def
    40 
    41 // MODULE DATA STRUCTURES
    42 //enum ?declaration
    43 //typedef ?declaration
    44 
    45 // LOCAL FUNCTION PROTOTYPES
    46 //?type ?function_name( ?arg_type, ?arg_type );
    47 
    48 // FORWARD DECLARATIONS
    49 //class ?FORWARD_CLASSNAME;
    50 
    51 // ============================= LOCAL FUNCTIONS ===============================
    52 
    53 // -----------------------------------------------------------------------------
    54 // ?function_name ?description.
    55 // ?description
    56 // Returns: ?value_1: ?description
    57 //          ?value_n: ?description_line1
    58 //                    ?description_line2
    59 // -----------------------------------------------------------------------------
    60 //
    61 /*
    62 ?type ?function_name(
    63     ?arg_type arg,  // ?description
    64     ?arg_type arg)  // ?description
    65     {
    66 
    67     ?code  // ?comment
    68 
    69     // ?comment
    70     ?code
    71     }
    72 */
    73 
    74 // ============================ MEMBER FUNCTIONS ===============================
    75 
    76 // -----------------------------------------------------------------------------
    77 // CBCThread::CBCThread
    78 // C++ default constructor can NOT contain any code, that
    79 // might leave.
    80 // -----------------------------------------------------------------------------
    81 //
    82 CBCThread::CBCThread( 
    83     CTestModuleIf& aTestModuleIf ):
    84         CScriptBase( aTestModuleIf )
    85     {
    86     }
    87 
    88 // -----------------------------------------------------------------------------
    89 // CBCThread::ConstructL
    90 // Symbian 2nd phase constructor can leave.
    91 // -----------------------------------------------------------------------------
    92 //
    93 void CBCThread::ConstructL()
    94     {
    95     //Read logger settings to check whether test case name is to be
    96     //appended to log file name.
    97     RSettingServer settingServer;
    98     TInt ret = settingServer.Connect();
    99     if(ret != KErrNone)
   100         {
   101         User::Leave(ret);
   102         }
   103     // Struct to StifLogger settigs.
   104     TLoggerSettings loggerSettings; 
   105     // Parse StifLogger defaults from STIF initialization file.
   106     ret = settingServer.GetLoggerSettings(loggerSettings);
   107     if(ret != KErrNone)
   108         {
   109         User::Leave(ret);
   110         } 
   111     // Close Setting server session
   112     settingServer.Close();
   113 
   114     TFileName logFileName;
   115     
   116     if(loggerSettings.iAddTestCaseTitle)
   117         {
   118         TName title;
   119         TestModuleIf().GetTestCaseTitleL(title);
   120         logFileName.Format(KBCThreadLogFileWithTitle, &title);
   121         }
   122     else
   123         {
   124         logFileName.Copy(KBCThreadLogFile);
   125         }
   126 
   127     iLog = CStifLogger::NewL( KBCThreadLogPath, 
   128                           logFileName,
   129                           CStifLogger::ETxt,
   130                           CStifLogger::EFile,
   131                           EFalse );
   132     
   133     SendTestClassVersion();
   134     }
   135 
   136 // -----------------------------------------------------------------------------
   137 // CBCThread::NewL
   138 // Two-phased constructor.
   139 // -----------------------------------------------------------------------------
   140 //
   141 CBCThread* CBCThread::NewL( 
   142     CTestModuleIf& aTestModuleIf )
   143     {
   144     CBCThread* self = new (ELeave) CBCThread( aTestModuleIf );
   145 
   146     CleanupStack::PushL( self );
   147     self->ConstructL();
   148     CleanupStack::Pop();
   149 
   150     return self;
   151 
   152     }
   153 
   154 // Destructor
   155 CBCThread::~CBCThread()
   156     { 
   157 
   158     // Delete resources allocated from test methods
   159     Delete();
   160 
   161     // Delete logger
   162     delete iLog; 
   163 
   164     }
   165 
   166 //-----------------------------------------------------------------------------
   167 // CBCThread::SendTestClassVersion
   168 // Method used to send version of test class
   169 //-----------------------------------------------------------------------------
   170 //
   171 void CBCThread::SendTestClassVersion()
   172 	{
   173 	TVersion moduleVersion;
   174 	moduleVersion.iMajor = TEST_CLASS_VERSION_MAJOR;
   175 	moduleVersion.iMinor = TEST_CLASS_VERSION_MINOR;
   176 	moduleVersion.iBuild = TEST_CLASS_VERSION_BUILD;
   177 	
   178 	TFileName moduleName;
   179 	moduleName = _L("BCThread.dll");
   180 
   181 	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName);
   182 	}
   183 
   184 // ========================== OTHER EXPORTED FUNCTIONS =========================
   185 
   186 // -----------------------------------------------------------------------------
   187 // LibEntryL is a polymorphic Dll entry point.
   188 // Returns: CScriptBase: New CScriptBase derived object
   189 // -----------------------------------------------------------------------------
   190 //
   191 EXPORT_C CScriptBase* LibEntryL( 
   192     CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
   193     {
   194 
   195     return ( CScriptBase* ) CBCThread::NewL( aTestModuleIf );
   196 
   197     }
   198 
   199 
   200 //  End of File