stif/TestInterface/src/StifTFwIfProt.cpp
branchRCL_3
changeset 19 07b41fa8d1dd
parent 18 3406c99bc375
child 20 ca8a1b6995f6
--- a/stif/TestInterface/src/StifTFwIfProt.cpp	Thu Jul 15 20:25:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2051 +0,0 @@
-/*
-* 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 conatins StifTfIfProt implementation.
-*
-*/
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <e32svr.h>
-#include "StifTFwIfProt.h"
-
-#include <StifLogger.h>
-
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define DEBUG(a) RDebug::Print(a)
-//#define DEBUG2(a,b) RDebug::Print(a,b)
-//#define DEBUG3(a,b,c) RDebug::Print(a,b,c)
-#define DEBUG(a)
-#define DEBUG2(a,b)
-#define DEBUG3(a,b,c)
-#define ERROR RDebug::Print
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ==================== LOCAL FUNCTIONS =======================================
-
-/*
--------------------------------------------------------------------------------
-
-    Function: <function name>
-
-    Description: <one line description>
-
-    <Description of the functionality 
-    description continues and...
-    continues>
-
-    Parameters:	<arg1>: <in/out/inout>: <accepted values>: <Description>
-    
-    Return Values: <value_1: Description
-		            value_n: Description line 1
-			                 description line 2>
-
-    Errors/Exceptions: <description how errors and exceptions are handled>
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-/*
-<type function_name(
-    <arg_type arg,>  
-    <arg_type arg >)  	
-    {
-    // <comment>
-    <code> 
-    
-    // <comment>
-    <code>
-    }
-*/
-
-
-/*
--------------------------------------------------------------------------------
-
-    DESCRIPTION
-
-    This module contains the implementation of CStifTFwIfProt class 
-	member functions.
-
--------------------------------------------------------------------------------
-*/
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: CStifTFwIfProt
-
-    Description: Default constructor
-
-    C++ default constructor can NOT contain any code, that
-    might leave.
-    
-    Parameters:	none
-    
-    Return Values: None
-    
-    Errors/Exceptions: None
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-CStifTFwIfProt::CStifTFwIfProt(): iMessage(0,0)
-    { 
-    };
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: ConstructL
-
-     Description: Symbian OS second phase constructor
-
-     Symbian OS default constructor can leave.
-
-     Parameters:    None
-
-     Return Values: None
-
-     Errors/Exceptions: None.
-
-     Status: Proposal
-    
--------------------------------------------------------------------------------
-*/
-void CStifTFwIfProt::ConstructL()
-    {        
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: NewL
-
-     Description: Two-phased constructor.
-          
-     Parameters:    None
-
-     Return Values: CStifTFwIfProt*: new object
-
-     Errors/Exceptions: Leaves if new or ConstructL leaves and in oom.
-
-     Status: Proposal
-    
--------------------------------------------------------------------------------
-*/
-EXPORT_C CStifTFwIfProt* CStifTFwIfProt::NewL()
-    {
-     
-    CStifTFwIfProt* self = new (ELeave) CStifTFwIfProt();
-    
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-     
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: ~CStifTFwIfProt
-
-    Description: Destructor
-
-    Parameters:	None
-    
-    Return Values: None
-    
-    Errors/Exceptions: None
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/    
-
-EXPORT_C CStifTFwIfProt::~CStifTFwIfProt()
-    {
-    
-    delete iItem;
-    delete iMessageBuf;
-    iMessageBuf = NULL;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: CreateL
-
-    Description: Create new empty protocol message.
-
-    Parameters:	TInt aLength: in: protocol message length
-    
-    Return Values: None
-    
-    Errors/Exceptions: Leave if oom.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-EXPORT_C void CStifTFwIfProt::CreateL( TInt aLength )
-    {
-    
-    // Delete previous if exists
-    delete iMessageBuf;
-    iMessageBuf = NULL;
-    iMessage.Set( 0, 0, 0 );
-    
-    iMessageBuf = HBufC::NewL( aLength );
-    iMessage.Set( iMessageBuf->Des() );
-            
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: Append
-
-    Description: Append string to protocol message.
-
-    Parameters:	TInt aLength: in: protocol message length
-    
-    Return Values: None
-    
-    Errors/Exceptions: Leave if oom.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/   
-EXPORT_C TInt CStifTFwIfProt::Append( const TDesC& aStr )
-    {
-    
-    if( ( aStr.Length() + 1 ) >
-        ( iMessage.MaxLength() - iMessage.Length() ) )
-        {
-        ERROR( _L("No space left for string") );
-        return KErrOverflow;   
-        }
-    iMessage.Append( aStr );
-    iMessage.Append( _L(" ") );
-    
-    return KErrNone;
-
-    }    
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: Append
-
-    Description: Append hexadecimal value to protocol message.
-
-    Parameters:	TInt aLength: in: protocol message length
-    
-    Return Values: None
-    
-    Errors/Exceptions: Leave if oom.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/   
-EXPORT_C TInt CStifTFwIfProt::AppendId( TUint32 aId )
-    {
-    
-     if( ( KMaxValueLength + 1 ) >
-        ( iMessage.MaxLength() - iMessage.Length() ) )
-        {
-        ERROR( _L("No space left for string") );
-        return KErrOverflow;   
-        }
-        
-    iMessage.AppendNumFixedWidth( aId, EHex, KProtocolIdLength );
-    iMessage.Append( _L(" ") );
-    
-    return KErrNone;
-
-    }
-        
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: Append
-
-    Description: Append string to protocol message.
-
-    Parameters:	TInt aLength: in: protocol message length
-    
-    Return Values: None
-    
-    Errors/Exceptions: Leave if oom.
-
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/   
-EXPORT_C TInt CStifTFwIfProt::Append( KeywordFunc aFunc, TInt aKeyword )
-    {
-    
-    if( ( aFunc( aKeyword ).Length() + 1 ) >
-        ( iMessage.MaxLength() - iMessage.Length() ) )
-        {
-        ERROR( _L("No space left for string") );
-        return KErrOverflow;   
-        }
-    iMessage.Append( aFunc( aKeyword ) );
-    iMessage.Append( _L(" ") );
-    
-    return KErrNone;
-
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: Append
-
-    Description: Append type-value string to protocol message.
-
-    Parameters:	TInt aLength: in: protocol message length
-    
-    Return Values: None
-    
-    Errors/Exceptions: Leave if oom.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/   
-EXPORT_C TInt CStifTFwIfProt::Append( KeywordFunc aFunc, 
-                                      TInt aKeyword, 
-                                      const TDesC& aStr )
-    {
-    
-     if( ( aFunc( aKeyword ).Length() + 2 +  aStr.Length() ) >
-        ( iMessage.MaxLength() - iMessage.Length() ) )
-        {
-        ERROR( _L("No space left for string") );
-        return KErrOverflow;
-        }
-        
-    iMessage.Append( aFunc( aKeyword ) );
-    iMessage.Append( _L("=") );
-    iMessage.Append( aStr );
-    iMessage.Append( _L(" ") );
-    
-    return KErrNone;
-
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: Append
-
-    Description: Append type-value string to protocol message.
-
-    Parameters:	TInt aLength: in: protocol message length
-    
-    Return Values: None
-    
-    Errors/Exceptions: Leave if oom.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/   
-EXPORT_C TInt CStifTFwIfProt::Append( KeywordFunc aFunc, 
-                                      TInt aKeyword, 
-                                      KeywordFunc aValueFunc, 
-                                      TInt aValue )
-    {
-    
-     if( ( aFunc( aKeyword ).Length() + 2 +  aValueFunc( aValue ).Length() ) >
-        ( iMessage.MaxLength() - iMessage.Length() ) )
-        {
-        ERROR( _L("No space left for string") );
-        return KErrOverflow;   
-        }
-        
-    iMessage.Append( aFunc( aKeyword ) );
-    iMessage.Append( _L("=") );
-    iMessage.Append( aValueFunc( aValue ) );
-    iMessage.Append( _L(" ") );
-    
-    return KErrNone;
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: Append
-
-    Description: Append type-value string to protocol message.
-
-    Parameters:	TInt aLength: in: protocol message length
-    
-    Return Values: None
-    
-    Errors/Exceptions: Leave if oom.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/   
-EXPORT_C TInt CStifTFwIfProt::Append( KeywordFunc aFunc, 
-                                       TInt aKeyword, 
-                                       TInt aValue )
-    {
-    
-     if( ( aFunc( aKeyword ).Length() + 2 + KMaxValueLength ) >
-        ( iMessage.MaxLength() - iMessage.Length() ) )
-        {
-        ERROR( _L("No space left for string") );
-        return KErrOverflow;   
-        }
-        
-    iMessage.Append( aFunc( aKeyword ) );
-    iMessage.Append( _L("=") );
-    iMessage.AppendNum( aValue );
-    iMessage.Append( _L(" ") );
-    
-    return KErrNone;
-
-    }
-        
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: SetL
-
-    Description: Set and parse protocol message.
-
-    Parameters:	TDesC& aMessage: in: protocol message
-    
-    Return Values: Symbian OS error code: If protocol message parsing fails, 
-        i.e. message prsing after header <msg type> <sdcid> <dstid>
-    
-    Errors/Exceptions: Leaves if protocol header parsing fails and oom.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifTFwIfProt::SetL( const TDesC& aMessage )
-    {
-    
-    // Delete previous if exists
-    delete iMessageBuf;
-    iMessageBuf = NULL;
-    iMessage.Set( 0,0,0 );
-    
-    iMessageBuf = aMessage.AllocL();
-    iMessage.Set( iMessageBuf->Des() );
-    
-    return ParseMessageL();
-        
-    }
-            
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: SetL
-
-    Description: Get protocol source identifier.
-
-    Parameters:	None
-    
-    Return Values: Source identifier.
-    
-    Errors/Exceptions: None.
-
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-EXPORT_C TUint32 CStifTFwIfProt::SrcId()
-    {
-    
-    return iSrcId;    
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: SetL
-
-    Description: Get protocol source device identifier.
-
-    Parameters:	None
-    
-    Return Values: Source device identifier.
-    
-    Errors/Exceptions: None.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-EXPORT_C TUint16 CStifTFwIfProt::SrcDevId()
-    {
-    
-    return DEVID( iSrcId );  
-        
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: SetL
-
-    Description: Get protocol source test identifier.
-
-    Parameters:	None
-    
-    Return Values: Source test identifier.
-    
-    Errors/Exceptions: None.
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TUint16 CStifTFwIfProt::SrcTestId()
-    {
-
-    return TESTID( iSrcId );  
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: SetL
-
-    Description: Get protocol destination identifier.
-
-    Parameters:	None
-    
-    Return Values: Destination identifier.
-    
-    Errors/Exceptions: None.
-
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-EXPORT_C TUint32 CStifTFwIfProt::DstId()
-    {
-    
-    return iDstId;  
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: SetL
-
-    Description: Get protocol destination device identifier.
-
-    Parameters:	None
-    
-    Return Values: Destination device identifier.
-    
-    Errors/Exceptions: None.
-
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-EXPORT_C TUint16 CStifTFwIfProt::DstDevId()
-    {
-
-    return DEVID( iDstId );  
-
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: SetL
-
-    Description: Get protocol destination test identifier.
-
-    Parameters:	None
-    
-    Return Values: Destination test identifier.
-    
-    Errors/Exceptions: None.
-
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-EXPORT_C TUint16 CStifTFwIfProt::DstTestId()
-    {
-
-    return TESTID( iDstId );  
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: ParseMessageL
-
-    Description: Parse protocol message.
-
-    Parameters:	None
-
-    Return Values: None.
-
-    Errors/Exceptions: None.
-
-    Status: Draft
-
--------------------------------------------------------------------------------
-*/
-TInt CStifTFwIfProt::ParseMessageL()
-    {
-    RDebug::Print(_L("CStifTFwIfProt::ParseMessageL start"));
-
-    RDebug::Print(_L("CStifTFwIfProt::ParseMessageL message content: (next line)"));
-    RDebug::Print(iMessage);
-
-    iItem = CStifItemParser::NewL( iMessage, 0, iMessage.Length() );
-
-    ParseHeaderL();
-
-    TRAPD( err,
-    switch( iMsgType )
-        {
-        case EMsgReserve:
-            RDebug::Print(_L("CStifTFwIfProt::ParseMessageL EMsgReserve"));
-            ParseReserveL();
-            break;
-        case EMsgRelease:
-            RDebug::Print(_L("CStifTFwIfProt::ParseMessageL EMsgRelease"));
-            break;
-        case EMsgRemote:
-            RDebug::Print(_L("CStifTFwIfProt::ParseMessageL EMsgRemote"));
-            ParseRemoteL();
-            break;
-        case EMsgResponse:
-            RDebug::Print(_L("CStifTFwIfProt::ParseMessageL EMsgResponse"));
-            ParseResponseL();
-            break;
-        default:
-            RDebug::Print(_L("CStifTFwIfProt::ParseMessageL ERROR invalid message type. Leaving!!!"));
-            ERROR( _L("Invalid message type") );        
-            User::Leave( KErrArgument );
-        }
-    );
-    
-    delete iItem;
-    iItem = 0;
-    
-    return err;
-           
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: ParseHeaderL
-
-    Description: Parse protocol header.
-
-    Parameters:	None
-    
-    Return Values: None.
-    
-    Errors/Exceptions: None.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-void CStifTFwIfProt::ParseHeaderL()
-    {
-    
-    TPtrC tmp;
-    TInt ret;
-    TInt tmpMsgType;
-    
-    // Get and parse message type    
-    ret = iItem->GetString( _L(""), tmp );
-    if( ret != KErrNone )
-        {
-        ERROR( _L("No message type given") );        
-        User::Leave( KErrNotFound );
-        }
-        
-    tmpMsgType = Parse( tmp, MsgType );
-    if( tmpMsgType < 0 )
-        {
-        ERROR( _L("Invalid message type given") );        
-        User::Leave( KErrArgument );
-        }
-	iMsgType = ( TMsgType )tmpMsgType;
-
-    // Get and parse srcid    
-    ret = iItem->GetNextString( tmp );
-    if( ret != KErrNone )
-        {
-        ERROR( _L("No srcid given") );        
-        User::Leave( KErrNotFound );
-        }
-    // Check id length
-    if( tmp.Length() != KProtocolIdLength )
-        {
-        ERROR( _L("Invalid srcid length [%d]"), tmp.Length() );        
-        User::Leave( KErrArgument );
-        }    
-    TUint32 id;
-    TLex lex( tmp );
-    if( lex.Val( id, EHex ) != KErrNone )
-        {
-        ERROR( _L("Invalid srcid given") );        
-        User::Leave( KErrArgument );
-        }        
-    iSrcId = id;
-
-
-    // Get and parse dstid    
-    ret = iItem->GetNextString( tmp );
-    if( ret != KErrNone )
-        {
-        ERROR( _L("No dstid given") );        
-        User::Leave( KErrNotFound );
-        }
-    // Check id length
-    if( tmp.Length() != KProtocolIdLength )
-        {
-        ERROR( _L("Invalid srcid length [%d]"), tmp.Length() );        
-        User::Leave( KErrArgument );
-        }                    
-    lex.Assign( tmp );
-    if( lex.Val( id, EHex ) != KErrNone )
-        {
-        ERROR( _L("Invalid dstid given") );        
-        User::Leave( KErrArgument );
-        }        
-    iDstId = id;
-    
-    }
-    
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: ParseReserveL
-
-    Description: Parse protocol reserve message.
-
-    Parameters:	None
-    
-    Return Values: None.
-    
-    Errors/Exceptions: None.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-void CStifTFwIfProt::ParseReserveL()
-    {
-    
-    TPtrC tmp;
-    TInt ret;
-	TInt tmpRemoteType;
-    
-    // Get and parse remote type    
-    ret = iItem->GetNextString( tmp );
-    if( ret != KErrNone )
-        {
-        ERROR( _L("No remote type given") );        
-        User::Leave( KErrNotFound );
-        }
-            
-    tmpRemoteType = Parse( tmp, RemoteType );
-    if( tmpRemoteType < 0 )
-        {
-        iRemoteType = ERemoteUnknown;
-        }
-    else 
-    	{
-    	iRemoteType = ( TRemoteType ) tmpRemoteType;
-    	}
-        
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: ParseRemoteL
-
-    Description: Parse protocol remote message.
-
-    Parameters:	None
-    
-    Return Values: None.
-    
-    Errors/Exceptions: None.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-void CStifTFwIfProt::ParseRemoteL()
-    {
-    RDebug::Print(_L("CStifTFwIfProt::ParseRemoteL start"));
-
-    TPtrC tmp;
-    TInt ret;
-    TInt tmpCmdType;
-
-    // Set mode of item parser to be able to read titles with spaces inside
-    iItem->SetParsingType(CStifItemParser::EQuoteStyleParsing);
-
-    // Get and parse command
-    ret = iItem->GetNextString( tmp );
-    if( ret != KErrNone )
-        {
-        ERROR( _L("No command given") );
-        User::Leave( KErrNotFound );
-        }
-
-    iCmdDes.Set( tmp );
-    tmpCmdType = Parse( tmp, CmdType );
-    RDebug::Print(_L("CStifTFwIfProt::ParseRemoteL readed command %d"), tmpCmdType);
-    if( tmpCmdType < 0 )
-        {
-        iCmdType = ECmdUnknown;
-        DEBUG( _L("Unknown command given") );        
-        }
-    else
-    	{
-    	iCmdType = ( TCmdType ) tmpCmdType;
-    	}
-        
-    switch( iCmdType )
-        {
-        case ECmdRun:
-            {
-            RDebug::Print(_L("CStifTFwIfProt::ParseRemoteL iCmdType ECmdRun"));
-            // Parse run parameters
-            TPtrC arg; 
-            TPtrC val;
-            iTestCaseNumber = KErrNotFound;
-            while( iItem->GetNextString( tmp ) == KErrNone )
-                {
-                if( ParseOptArg( tmp, arg, val ) == KErrNone )
-                    {              
-                    TInt param = Parse( arg, RunParams );
-                    if( param < 0 )
-                        {
-                        ERROR( _L("Invalid run parameter given") );        
-                        User::Leave( KErrArgument );
-                        }
-                    
-                    switch( param )
-                        {
-                        case ERunModule:
-                            iModule.Set( val );
-                            break;
-                        case ERunInifile:
-                            iIniFile.Set( val );
-                            break;
-                        case ERunTestcasefile:
-                            iTestCaseFile.Set( val );
-                            break;
-                        case ERunTestcasenum:
-                            {
-                            TLex ptr( val );
-                            if( ptr.Val( iTestCaseNumber ) != KErrNone )
-                                {
-                                ERROR( _L("Invalid test case number given") );        
-                                User::Leave( KErrArgument );
-                                }  
-                            }
-                            break;
-                        case ERunTitle:
-                            iTitle.Set(val);
-                            break;
-                        default:
-                            ERROR( _L("Invalid run parameter given") );        
-                            User::Leave( KErrArgument );
-                        }
-                    }
-                else
-                    {
-                    ERROR( _L("Invalid run parameter given") );        
-                    User::Leave( KErrArgument );
-                    }
-                }
-            if( iModule.Length() == 0 )
-                {
-                ERROR( _L("No mandatory test module name given as run parameter") );        
-                //User::Leave( KErrNotFound );
-                }    
-            if(iTestCaseNumber < 0 && iTitle.Length() == 0) //No test case number and no title
-                {
-                ERROR( _L("No mandatory test case number given as run parameter") );        
-                //User::Leave( KErrNotFound );
-                }    
-            }   
-            break;
-        case ECmdPause:
-        case ECmdResume:
-        case ECmdCancel:
-            RDebug::Print(_L("CStifTFwIfProt::ParseRemoteL iCmdType ECmdPause,Resume,Cancel"));
-            break;
-        case ECmdRequest:
-        case ECmdRelease:
-            RDebug::Print(_L("CStifTFwIfProt::ParseRemoteL iCmdType ECmdRequest,Release"));
-            ret = iItem->GetNextString( tmp );
-            if( ret != KErrNone )
-                {
-                ERROR( _L("No event name given") );        
-                //User::Leave( KErrNotFound );
-                iEventName.Set( 0, 0 );
-                }
-            else
-                {
-                iEventName.Set( tmp );
-                }
-            break;
-        case ECmdSendReceive:
-            {
-            RDebug::Print(_L("CStifTFwIfProt::ParseRemoteL iCmdType ECmdSendReceive"));
-            DEBUG( _L("sendreceive") );
-            break;
-            }
-        default:
-            RDebug::Print(_L("CStifTFwIfProt::ParseRemoteL iCmdType UNKNOWN!!!"));
-            DEBUG( _L("Unknown command") );
-            break;
-        }
-    }    
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: ParseResponseL
-
-    Description: Parse protocol response message.
-
-    Parameters:	None
-    
-    Return Values: None.
-    
-    Errors/Exceptions: None.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-void CStifTFwIfProt::ParseResponseL()
-    {
-
-    TPtrC tmp;
-    TInt ret;
-    TInt tmpRespType;
-    TInt tmpCmdType;
-
-    // Get and parse request response type
-    ret = iItem->GetNextString( tmp );
-    if( ret != KErrNone )
-        {
-        ERROR( _L("No request type given") );
-        User::Leave( KErrNotFound );
-        }
-
-    tmpRespType = Parse( tmp, MsgType );
-    if( tmpRespType < 0 )
-        {
-        ERROR( _L("Invalid request type given") );
-        User::Leave( KErrArgument );
-        }
-    else
-    	{
-    	iRespType = ( TMsgType ) tmpRespType;
-    	}
-
-    ret = iItem->GetNextString( tmp );
-
-    // First check if this is a response to a remote command
-    if( iRespType == EMsgRemote )
-        {
-        if( ret != KErrNone )
-            {
-            ERROR( _L("No arguments for remote response given") );
-            User::Leave( KErrNotFound );
-            }
-
-        iCmdDes.Set( tmp );
-        tmpCmdType = Parse( tmp, CmdType );;
-        if( tmpCmdType >= 0 )
-            {
-			iCmdType = ( TCmdType ) tmpCmdType;
-            DEBUG2( _L("Remote response for %S"), &tmp );
-            ParseCmdResponseL();
-            // Get and parse general response parameters
-            ret = iItem->GetNextString( tmp );
-            }
-        else
-            {
-            iCmdType = (TCmdType)KErrNotFound;
-            }
-        }
-    while( ret == KErrNone )
-        {
-        TPtrC arg;
-        TPtrC val;
-        if( ParseOptArg( tmp, arg, val ) == KErrNone )
-            {              
-            TInt param = Parse( arg, RespParam );
-            if( param < 0 )
-                {
-                ERROR( _L("Invalid parameter given") );        
-                User::Leave( KErrArgument );
-                }
-            
-            switch( param )
-                {
-                case ERespResult:
-                    {
-                    TLex ptr( val );
-                    if( ptr.Val( iResult ) != KErrNone )
-                        {
-                        ERROR( _L("Invalid error code given") );        
-                        User::Leave( KErrArgument );
-                        }   
-                    }
-                    break;
-                default:
-                    ERROR( _L("Invalid parameter given") );        
-                    User::Leave( KErrArgument );
-                }       
-            }
-#if 0 // Check all parameters anyway
-        else 
-            {
-            ERROR( _L("Invalid parameter given") );        
-            User::Leave( KErrArgument ); 
-            }
-#endif
-        ret = iItem->GetNextString( tmp );
-
-        }
-    
-    }    
-    
-    
-/*
--------------------------------------------------------------------------------
-
-    Class: CStifTFwIfProt
-
-    Method: ParseCmdResponseL
-
-    Description: Parse protocol command response parameters.
-
-    Parameters:	None
-    
-    Return Values: None.
-    
-    Errors/Exceptions: None.
-    
-    Status: Draft
-	
--------------------------------------------------------------------------------
-*/
-void CStifTFwIfProt::ParseCmdResponseL()
-    {
-    
-    TPtrC tmp;
-    TPtrC arg; 
-    TPtrC val;
-    TInt ret;
-    TInt tmpRunStatus;
-    TInt tmpResultCategory;
-    TInt tmpEventStatus;
-    TInt tmpEventType;	
-    
-    RDebug::Print(_L("CStifTFwIfProt::ParseCmdResponseL start"));
-    switch( iCmdType )
-        {
-        case ECmdRun:
-            {
-            RDebug::Print(_L("CStifTFwIfProt::ParseCmdResponseL ECmdRun"));
-            // Parse run response status 
-            ret = iItem->GetNextString( tmp );
-            if( ret != KErrNone )
-                {
-                ERROR( _L("No run response status given") );        
-                User::Leave( KErrNotFound );
-                }
-            
-            tmpRunStatus = Parse( tmp, RunStatus );;
-            if( tmpRunStatus < 0 )
-                {
-                ERROR( _L("Invalid run status in response given") );        
-                User::Leave( KErrArgument );
-                }
-            else
-            	{
-            	iRunStatus = (TRunStatus) tmpRunStatus;
-            	}
-            
-            // Parse runs status parameters
-            while( iItem->GetNextString( tmp ) == KErrNone )
-                {
-                if( ParseOptArg( tmp, arg, val ) == KErrNone )
-                    {              
-                    TInt param = Parse( arg, RunStatusParams );
-                    if( param < 0 )
-                        {
-                        ERROR( _L("Invalid run status parameter given") );        
-                        User::Leave( KErrArgument );
-                        }
-                    
-                    switch( param )
-                        {
-                        case ERunResult:
-                            {
-                            TLex ptr( val );
-                            if( ptr.Val( iResult ) != KErrNone )
-                                {
-                                ERROR( _L("Invalid run result given") );        
-                                User::Leave( KErrArgument );
-                                }  
-                            }
-                            break;
-                        case ERunCategory:
-                            tmpResultCategory = Parse( val, ResultCategory );
-                            if( tmpResultCategory < 0 )
-                                {
-                                ERROR( _L("Invalid run result category given") );        
-                                User::Leave( KErrArgument );
-                                }
-                            else 
-                            	{
-                            	iResultCategory = ( TResultCategory ) tmpResultCategory;
-                            	}
-                            break;
-                        default:
-                            ERROR( _L("Invalid run status parameter given") );        
-                            User::Leave( KErrArgument );
-                        }
-                    }
-                else
-                    {
-                    ERROR( _L("Invalid run status parameter given") );        
-                    User::Leave( KErrArgument );                    
-                    }
-                }
-            }           
-            break;
-        case ECmdPause:
-        case ECmdResume:
-        case ECmdCancel:
-            RDebug::Print(_L("CStifTFwIfProt::ParseCmdResponseL ECmdPause,Resume,Cancel"));
-            break;
-        case ECmdRequest:
-            {
-            RDebug::Print(_L("CStifTFwIfProt::ParseCmdResponseL ECmdRequest"));
-            // Parse event request response status
-            ret = iItem->GetNextString( tmp );
-            if( ret != KErrNone )
-                {
-                ERROR( _L("No request response status given") );        
-                User::Leave( KErrNotFound );
-                }
-            
-            tmpEventStatus = Parse( tmp, EventStatus );
-            if( tmpEventStatus < 0 )
-                {
-                ERROR( _L("Invalid request status in response given") );        
-                User::Leave( KErrArgument );
-                }
-            else
-            	{
-            	iEventStatus = (TEventStatus) tmpEventStatus;
-            	}
-            
-            // Parse request response event name
-            ret = iItem->GetNextString( tmp );
-            if( ret != KErrNone )
-                {
-                ERROR( _L("No request response event name given") );        
-                User::Leave( KErrNotFound );
-                }
-            iEventName.Set( tmp );    
-            
-            // Parse request response status parameters
-            while( iItem->GetNextString( tmp ) == KErrNone )
-                {
-                if( ParseOptArg( tmp, arg, val ) == KErrNone )
-                    {              
-                    TInt param = Parse( arg, EventStatusParams );
-                    if( param < 0 )
-                        {
-                        ERROR( _L("Invalid request response status parameter given") );        
-                        User::Leave( KErrArgument );
-                        }
-                    
-                    switch( param )
-                        {
-                        case EEventResult:
-                            {
-                            TLex ptr( val );
-                            if( ptr.Val( iResult ) != KErrNone )
-                                {
-                                ERROR( _L("Invalid request response status parameter result given") );        
-                                User::Leave( KErrArgument );
-                                }  
-                            }
-                            break;
-                        case EEventType:
-                            tmpEventType = Parse( val, EventType );;
-                            if( tmpEventType < 0 )
-                                {
-                                ERROR( _L("Invalid request response status parameter event type given") );        
-                                User::Leave( KErrArgument );
-                                }
-                            else
-                            	{
-                            	iEventType = ( TEventIf::TEventType ) tmpEventType;
-                            	}
-                            break;
-                        default:
-                            ERROR( _L("Invalid request response status parameter given") );        
-                            User::Leave( KErrArgument );
-                        }
-                    }
-                else
-                    {
-                    ERROR( _L("Invalid request response status parameter given") );        
-                    User::Leave( KErrArgument );            
-                    }    
-                }
-            }
-            break;
-        case ECmdRelease:
-            RDebug::Print(_L("CStifTFwIfProt::ParseCmdResponseL ECmdRelease"));
-            // Parse release response event name
-            ret = iItem->GetNextString( tmp );
-            if( ret != KErrNone )
-                {
-                ERROR( _L("No release response event name given") );        
-                User::Leave( KErrNotFound );
-                }
-            iEventName.Set( tmp );    
-            break;
-        case ECmdSetEvent:
-        case ECmdUnsetEvent:
-            RDebug::Print(_L("CStifTFwIfProt::ParseCmdResponseL ECmdSetEvent,UnsetEvent"));
-            // Parse release response event name
-            ret = iItem->GetNextString( tmp );
-            if( ret != KErrNone )
-                {
-                ERROR( _L("No set/unset response event name given") );
-                User::Leave( KErrNotFound );
-                }
-            iEventName.Set( tmp );
-            break;
-        case ECmdSendReceive:
-            {
-            RDebug::Print(_L("CStifTFwIfProt::ParseCmdResponseL ECmdSendReceive"));
-            // Parse sendreceive response status
-            ret = iItem->GetNextString( tmp );
-            if( ret != KErrNone )
-                {
-                ERROR( _L("No run response status given") );        
-                User::Leave( KErrNotFound );
-                }
-            
-            tmpRunStatus = Parse( tmp, RunStatus );
-            if( tmpRunStatus < 0 )
-                {
-                ERROR( _L("Invalid run status in response given") );        
-                User::Leave( KErrArgument );
-                }
-            else
-            	{
-            	iRunStatus = (TRunStatus) tmpRunStatus;
-            	}
-            break;
-            }
-        default:
-            ERROR( _L("Invalid command response") );        
-            User::Leave( KErrArgument );
-        
-        }      
-    }
-    
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: MsgType
-
-     Description: Returns a string desrciptor corresponding 
-        to message type number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::MsgType( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"reserve",
-        (TText*)L"release",
-        (TText*)L"remote",
-        (TText*)L"response",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: ResultCategory
-
-     Description: Returns a string desrciptor corresponding 
-        to result category number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::CmdType( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"run",
-        (TText*)L"pause",
-        (TText*)L"resume",
-        (TText*)L"cancel",
-        (TText*)L"request",
-        (TText*)L"release",
-        (TText*)L"sendreceive",
-        (TText*)L"set",
-        (TText*)L"unset",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: RemoteType
-
-     Description: Returns a string desrciptor corresponding 
-        to remote type number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::RemoteType( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"phone",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: RunParams
-
-     Description: Returns a string desrciptor corresponding 
-        to run parameter number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::RunParams( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"module",
-        (TText*)L"inifile",
-        (TText*)L"testcasefile",
-        (TText*)L"testcasenum",
-        (TText*)L"title",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-  
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: RunStatus
-
-     Description: Returns a string desrciptor corresponding 
-        to run status number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::RunStatus( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"started",
-        (TText*)L"error",
-        (TText*)L"ready",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: RunStatusParams
-
-     Description: Returns a string desrciptor corresponding 
-        to run status parameter number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::RunStatusParams( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"result",
-        (TText*)L"category",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: ResultCategory
-
-     Description: Returns a string desrciptor corresponding 
-        to command type number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::ResultCategory( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"normal",
-        (TText*)L"panic",
-        (TText*)L"exception",
-        (TText*)L"timeout",
-        (TText*)L"leave",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: EventStatus
-
-     Description: Returns a string desrciptor corresponding 
-        to command type number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::EventStatus( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"active",
-        (TText*)L"set",
-        (TText*)L"error",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: EventStatusParams
-
-     Description: Returns a string desrciptor corresponding 
-        to command type number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::EventStatusParams( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"result",
-        (TText*)L"type",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: EventType
-
-     Description: Returns a string desrciptor corresponding 
-        to event type number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::EventType( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"indication",
-        (TText*)L"state",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: RespParam
-
-     Description: Returns a string desrciptor corresponding 
-        to response parameter number. 
-
-     Parameters:    TInt aKeyword: in: keyword index.
-     
-     Return Values: TPtrC: keyword descriptor
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/      
-EXPORT_C TPtrC CStifTFwIfProt::RespParam( TInt aKeyword )
-    {
-    static TText* const keywords[] =
-        {
-        (TText*)L"result",
-        };
-    
-    if( (TUint)aKeyword >= (sizeof( keywords )/sizeof(TText*)) )
-          {
-          TPtrC null;
-          return null;
-          } 
-    
-    TPtrC keyword( keywords[ aKeyword ] ); 
-    return keyword;
-    
-    }
-
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: SetSrcId
-
-     Description: Set protocol source identifier.
-
-     Parameters: TUint32 aSrcId: in: source identifier
-     
-     Return Values: Symbian OS error code
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifTFwIfProt::SetSrcId( TUint32 aSrcId )
-    {
-    
-    iSrcId = aSrcId;
-    return AppendId( iSrcId );
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: SetDstId
-
-     Description: Set protocol destination identifier.
-
-     Parameters: TUint32 aDstId: in: destination identifier
-     
-     Return Values: Symbian OS error code
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CStifTFwIfProt::SetDstId( TUint32 aDstId )
-    {
-    
-    iDstId = aDstId;
-    return AppendId( iDstId );
-    
-    }
-    
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: SetMsgType
-
-     Description: Set message type.
-
-     Parameters: TMsgType iMsgType: in: message type
-     
-     Return Values: Symbian OS error code
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CStifTFwIfProt::SetMsgType( TMsgType aMsgType )
-    {
-    
-    iMsgType = aMsgType;
-    return Append( CStifTFwIfProt::MsgType, iMsgType );
-    
-    }
-    
-
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: SetRespType
-
-     Description: Set response type.
-
-     Parameters:    TMsgType iMsgType : in: set response type
-     
-     Return Values: Symbian OS error code
-     
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/ 
-EXPORT_C TInt CStifTFwIfProt::SetRespType( TMsgType aRespType )
-    {
-    
-    iRespType = aRespType;
-    return Append( CStifTFwIfProt::MsgType, iRespType );
-    
-    }
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: SetCmdType
-
-     Description: Set command type.
-
-     Parameters: TCmdType iCmdType: in: command type
-     
-     Return Values: None
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CStifTFwIfProt::SetCmdType( TCmdType aCmdType )
-    {
-    
-    iCmdType = aCmdType;
-    return Append( CStifTFwIfProt::CmdType, iCmdType );
-    
-    }
-
-    
-/*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: Parse
-
-     Description: Returns a keyword enum corresponding to keyword 
-                  string descriptor.
-
-     Parameters:    TPtrC aKeyword: in: keyword descriptor.
-                    KeywordFunc aFunc: in: Function pointer to keyword parser 
-     
-     Return Values: TInt: keyword index
-                    KErrNotFound: Keyword does not exists
-
-     Errors/Exceptions: None
-     
-     Status: Draft 
-    
-------------------------------------------------------------------------------
-*/
-TInt CStifTFwIfProt::Parse( TDesC& aKeyword, KeywordFunc aFunc )
-    {
-    TInt ind;
-    for( ind = 0; aFunc( ind ).Length() > 0; ind++ )
-        {
-        if( aFunc( ind ) == aKeyword )
-            {
-            return ind;
-            }
-        }
-    return KErrNotFound;
-    };
-    
-    
-    /*
--------------------------------------------------------------------------------
-
-     Class: CStifTFwIfProt
-
-     Method: ParseOptArgL
-
-     Description: Parses optional argument 
-  
-     Parameters: const TDesC& aOptArg: in: 
-                    argument-value pair (format arg=value)
-                 TPtrC& aArg: out: parsed argument  
-                 TPtrC& aVal: out: parsed value
-     
-     Return Values: KErrNone: Everything ok
-                    Symbian OS error code: Not a valid optarg
-
-     Errors/Exceptions: None
-
-     Status: Draft
-    
--------------------------------------------------------------------------------
-*/
-TInt CStifTFwIfProt::ParseOptArg( const TDesC& aOptArg, 
-                                   TPtrC& aArg, 
-                                   TPtrC& aVal )
-    { 
-    TInt length = aOptArg.Length();
-    for( TInt i=0; i < length; i++) 
-        {
-        // find the '=' sign 
-        if( aOptArg[i] == '=' )
-            {
-            if( i+1 >= length )
-                {
-                return KErrArgument;
-                }
-            aArg.Set( aOptArg.Left( i ) );
-            aVal.Set( aOptArg.Mid( i+1 ) );
-            DEBUG3(  _L( "arg '%S', val '%S'" ),
-                &aArg, &aVal );        
-            return KErrNone;
-            }
-        }
-    return KErrArgument;
-    
-    }     
-
-// ================= OTHER EXPORTED FUNCTIONS =================================
-// None
-
-// End of File