adaptationlayer/tsy/simatktsy_dll/internal/test/simatktsy_testtool/core/inc/core.h
author <dalarub>
Fri, 06 Nov 2009 17:28:23 +0000
changeset 0 63b37f68c1ce
permissions -rw-r--r--
First Contribution. Vanilla as it came from Nokia

/*
* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:   Core is base class for all polymorfic dlls use
*                to implement test cases
*
*/




#ifndef SIMATKCORE_H
#define SIMATKCORE_H

//  INCLUDES
#include <testscripterinternal.h>
#include <etelmm.h>
#include <satcs.h>

// CONSTANTS

// Logging path and file
_LIT( KCoreLogPath, "c:\\logs\\testframework\\" ); 
_LIT( KCoreLogFile, "SimAtkTestTool.txt" ); 

// Notifys list 

      
// DATA TYPES

// SatIpc is used to identify the Sat notifications
typedef TInt TSatIpc;

// Structure that contain the string and ipc presentation of notify
struct TSatNotify
    {
    const TText* iNotifyString;
    const TSatIpc iIpc;
    };
 
// CONSTANTS

// Array of notifications
TSatNotify const KNotifyList[] =
    {
        { _S("ESatNotifyCloseChannelPCmd"), ESatNotifyCloseChannelPCmd },
        { _S("ESatNotifyGetChannelStatusPCmd"), ESatNotifyGetChannelStatusPCmd },
        { _S("ESatNotifyGetInkeyPCmd"), ESatNotifyGetInkeyPCmd },
        { _S("ESatNotifyGetInputPCmd"), ESatNotifyGetInputPCmd },
        { _S("ESatNotifyGetReaderStatusPCmd"), ESatNotifyGetReaderStatusPCmd },
        { _S("ESatNotifyLanguageNotificationPCmd"), ESatNotifyLanguageNotificationPCmd },
        { _S("ESatNotifyPlayTonePCmd"), ESatNotifyPlayTonePCmd },
        { _S("ESatNotifyPollingIntervalPCmd"), ESatNotifyPollingIntervalPCmd },
        { _S("ESatNotifyPollingOffPCmd"), ESatNotifyPollingOffPCmd },
        { _S("ESatNotifyPowerOffCardPCmd"), ESatNotifyPowerOffCardPCmd },
        { _S("ESatNotifyPowerOnCardPCmd"), ESatNotifyPowerOnCardPCmd },
        { _S("ESatNotifyProactiveSimSessionEnd"), ESatNotifyProactiveSimSessionEnd },
        { _S("ESatNotifyProactiveSimSessionStart"), ESatNotifyProactiveSimSessionStart },
        { _S("ESatNotifyReceiveDataPCmd"), ESatNotifyReceiveDataPCmd },
        { _S("ESatNotifySelectItemPCmd"), ESatNotifySelectItemPCmd },
        { _S("ESatNotifyDisplayTextPCmd"), ESatNotifyDisplayTextPCmd },        	
        { _S("ESatNotifySetUpEventListPCmd"), ESatNotifySetUpEventListPCmd },
        { _S("ESatNotifySetUpMenuPCmd"), ESatNotifySetUpMenuPCmd },
        { _S("ESatNotifyTimerExpiration"), ESatNotifyTimerExpiration },
        { _S("ESatNotifyTimerMgmtPCmd"), ESatNotifyTimerMgmtPCmd },
        { _S("ESatNotifyTsyStateUpdated"), ESatNotifyTsyStateUpdated },
        { _S("ESatNotifyRefreshRequiredParam"), ESatNotifyRefreshRequiredParam },
        { _S("ESatNotifyRefreshRequired"), ESatNotifyRefreshRequired },
        { _S("ESatNotifyRefreshPCmd"), ESatNotifyRefreshPCmd },
        { _S("ESatNotifyLaunchBrowserPCmd"), ESatNotifyLaunchBrowserPCmd },
        { _S("ESatNotifyLocalInfoPCmd"), ESatNotifyLocalInfoPCmd },
        { _S("ESatNotifyOpenChannelPCmd"), ESatNotifyOpenChannelPCmd },
        { _S("ESatNotifyPerformCardApduPCmd"), ESatNotifyPerformCardApduPCmd },
        { _S("ESatNotifyRunAtCommandPCmd"), ESatNotifyRunAtCommandPCmd },
        { _S("ESatNotifySendDataPCmd"), ESatNotifySendDataPCmd },
        { _S("ESatNotifySendDtmfPCmd"), ESatNotifySendDtmfPCmd },
        { _S("ESatNotifySendSmPCmd"), ESatNotifySendSmPCmd },
        { _S("ESatNotifySendSsPCmd"), ESatNotifySendSsPCmd },
        { _S("ESatNotifySendUssdPCmd"), ESatNotifySendUssdPCmd },
        { _S("ESatNotifyServiceSearchPCmd"), ESatNotifyServiceSearchPCmd },
        { _S("ESatNotifySetUpCallPCmd"), ESatNotifySetUpCallPCmd },
        { _S("ESatNotifySetUpIdleModeTextPCmd"), ESatNotifySetUpIdleModeTextPCmd },
        { _S("ESatNotifyCallControlRequest"), ESatNotifyCallControlRequest },
        { _S("ESatNotifyCbDownload"), ESatNotifyCbDownload },
        { _S("ESatNotifyMoSmControlRequest"), ESatNotifyMoSmControlRequest },
        { _S("ESatNotifySmsPpDownload"), ESatNotifySmsPpDownload }
    };
    
const TUint KNotifyListSize = static_cast<TUint>
    ( sizeof( KNotifyList ) / sizeof( TSatNotify ) ) ;
    

// FORWARD DECLARATIONS
class CSimAtk;

// CLASS DECLARATION

/**
 *  CSimAtkCore test class for STIF Test Framework TestScripter.
 *  Base class for all sub classe
 *  @lib SimAtkCore.dll
 */
class CSimAtkCore : public CScriptBase
    {
    public:  // Enumerations
    
        /**
        * An enum object type. Enumarates required classed 
        * for Notify class.
        */
        enum TObjectType
        	{
        	ECore,      /**< TObjectType 0 ECore.   */  
            ESimAtk,    /**< TObjectType 1 ESimAtk. */
        	};
        	
    
    public:  // Constructors and destructor

        /**
        * Two-phased constructor.
        */
        IMPORT_C static CSimAtkCore* NewL( CTestModuleIf& aTestModuleIf );
        
        /**
        * Destructor.
        */
        IMPORT_C virtual ~CSimAtkCore();
        
      
    public: // New methods

        /**
        * Core functions, enumerates notify type from scripted
        * parameter.
        * @param aNotifyString String that shall be mapped
        * @param aIsNotify Output which is set true if aNotifyString
        * contained notification and false when it was a cancellation
        * @return IPC or KErrNotSupported when string was a notify.
        * KErrNone if string was cancellation
        */  
        IMPORT_C virtual TSatIpc MapStringToIpc(
                const TDesC& aNotifyString,
                TBool& aIsNotify );
    
        /**
        * Core functions, enumerates notify string from Ipc.
        * @param aNotifyIpc Ipc that shall be mapped
        * @return Notify string or NullDesc when ipc remain unidentified
        */  
        IMPORT_C virtual TPtrC MapIpcToString(
                const TSatIpc aNotifyIpc );    
                
        /**
        * This sets asyncronous method call 
        * @param aStatus reference to recuest status
        * @param aNotifyIpc IPC of notify to be notified
        * @return Symbian OS Error code
        */
        IMPORT_C virtual TInt Notify( TRequestStatus& aStatus,
            const TSatIpc& aNotifyIpc );
       
        /**
        * This cancels async method call
        * @param aNotifyIpc IPC of notify to be cancelled
        * @return none
        */
        IMPORT_C virtual void NotifyCancel( const TSatIpc& aNotifyIpc );

        /**
        * Set parameters from subclass to base class if base class
        * implementation is used.
        * @param aString reference to parameter reed from the script
        * @return none
        */
        IMPORT_C void SetString( const TDesC& aString );


    public: // Functions from base classes

        /**
        * Function direct script calls to correct functions.
        * @param aItem Script line containing method name and parameters
        * @return Symbian OS error code
        */
        IMPORT_C virtual TInt RunMethodL( CStifItemParser& aItem );
    	        

    protected: // New methods
    
        /**
        * Close functio to close required services after test is done 
        * @param none
        * @return Symbian OS Error code
        */
        IMPORT_C virtual TInt Close( CStifItemParser& aItem );
       
        /**
        * Open function for required services 
        * @param none
        * @return  Symbian Error code
        */
        IMPORT_C virtual TInt Open( CStifItemParser& aItem );
        
        /**
        * Sets object type by casting class
        * @param aType enum to current class
        * @param aModule pointer to any class this parameter is cast to 
        * refered class 
        * @return none
        */
		IMPORT_C virtual void SetObjectType( TObjectType aType,
		    TAny* aModule );
		    

    protected: // Constructors
    
        /**
        * Constructor  
        * @param aTestModuleIf reference to test module
        * @return base class object
        */
		IMPORT_C CSimAtkCore( CTestModuleIf& aTestModuleIf );
    
        /**
        * By default Symbian 2nd phase constructor is non public.
        */
        IMPORT_C void ConstructL();


    protected:  // Functions from base classes
    
    /**
        * Internal fuction to run specified method 
        * @param aFunction function available
        * @param aCount number of functions
        * @param aItem reference to parser class holding parameter data
        * @return Symbian Os Error Code
        */
        IMPORT_C virtual TInt RunInternalL( 
            TStifFunctionInfo const aFunctions[], TInt aCount, 
            CStifItemParser& aItem );
            
            
    private:
    
        /**
        * Connect function connects to needed servers
        * @param aItem reference to Parser class holding parameter data
        * @return Symbian OS Error code
        */
        TInt Connect( CStifItemParser& aItem );
       
        /**
        * Load function load required services and files
        * @param aItem reference to Parser class holding parameter data
        * @return Symbian OS Error code
        */ 
        TInt Load( CStifItemParser& aItem );
       
        /**
        * Return enum of the current class
        * @param none
        * @return enum to current class
        */
        TInt ObjectType();
        
        /**
        * Function direct script calls to correct functions.
        * @param ACount number of functions
        * @return Pointer to Stif function Info
        */     
        const TStifFunctionInfo* RunMethodCases( TInt& aCount );

        /**
        * Basic set function to set various data
        * @param aItem reference to Parser class holding parameter data
        * @return Symbian OS Error code
        */
        TInt Set( CStifItemParser& aItem );
         
        /**
        * UnLoad function unload required services and files
        * @param aItem reference to Parser class holding parameter data
        * @return Symbian OS Error code
        */ 
        TInt Unload( CStifItemParser& aItem );
       

    protected: // Data
        
        /**
        * RTelService object
        */ 
        RTelServer                      		iRtel;
        
        /**
        * RCommServer object
        */
        RCommServ                      			iRcomm;

        /**
        * RMobile phone object
        */		
    	RMobilePhone                    		iRphone;

        /**
        * Pointer to logger
        */	
       	CStifLogger*							iCoreLog;
                

    private: // Data

        /**
        * Pointer to string holding parameter from sub class
        * if base class implementation is needed
        */		
        TPtrC									iString;
        
        /**
        * Enumerale to object type
        */	
        TObjectType                             iObjectType;
    	
        /**
        * Pointer to CSimAtk class
        */	
        CSimAtk*                                iSimAtk;
        
        /**
        * Search optimization
        */
        TInt                                    iLastIndex;
    };

#endif      // SIMATKCORE_H
            
// End of File