sapi_logging/tsrc/dev/tloggingprovidertest/src/tprovidertestblocks.cpp
changeset 0 14df0fbfcc4e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sapi_logging/tsrc/dev/tloggingprovidertest/src/tprovidertestblocks.cpp	Mon Mar 30 12:51:10 2009 +0300
@@ -0,0 +1,1432 @@
+/*
+* Copyright (c) 2002 - 2007 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:   ?Description
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "tprovidertest.h"
+#include "teventdetails.h"
+#include "tfilterdetails.h"
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ctprovidertest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Ctprovidertest::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// Ctprovidertest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Ctprovidertest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "Example", Ctprovidertest::ExampleL ),
+        ENTRY( "AddTest1", Ctprovidertest :: AddTest1L ),
+        ENTRY( "AddTest2", Ctprovidertest :: AddTest2L ),
+        ENTRY( "AddGeneric", Ctprovidertest :: AddGenericL ),
+        ENTRY( "DeleteTest" , Ctprovidertest :: DeletetestL),
+        ENTRY( "GetListGeneric",Ctprovidertest :: GetListGenericL ),
+        ENTRY("AddGenericPos" , Ctprovidertest :: AddGenericPosL),
+        ENTRY("DeleteTestPos" , Ctprovidertest :: DeleteGenericPosL),
+        ENTRY( "GetListGenericPos",Ctprovidertest :: GetListGenericPosL ),
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// Ctprovidertest::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctprovidertest::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( Ktprovidertest, "tprovidertest" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, Ktprovidertest, KExample );
+    // Print to log file
+    iLog->Log( KExample );
+
+    TInt i = 0;
+    TPtrC string;
+    _LIT( KParam, "Param[%i]: %S" );
+    while ( aItem.GetNextString ( string ) == KErrNone )
+        {
+        TestModuleIf().Printf( i, Ktprovidertest, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// Ctprovidertest::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctprovidertest::AddTest1L( CStifItemParser& /*aItem*/ )
+    {
+    
+      
+     _LIT(KTProvidertest , "tprovidertest") ;
+     iLog->Log(KTProvidertest) ;
+     
+     __UHEAP_MARK ;
+     
+     TRAPD(error , taddtest1L() ) ;
+     
+    __UHEAP_MARKEND ;
+    return KErrNone;
+
+    }
+    
+TInt Ctprovidertest::AddTest2L( CStifItemParser& /*aItem*/ )
+    {
+    
+      
+     _LIT(KTProvidertest , "tprovidertest") ;
+     iLog->Log(KTProvidertest) ;
+     
+     __UHEAP_MARK ;
+     
+     TRAPD(error , taddtest2L() ) ;
+     
+    __UHEAP_MARKEND ;
+    return KErrNone;
+
+    }    
+    
+    
+ // -----------------------------------------------------------------------------
+// Ctprovidertest::AddGenericL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctprovidertest::AddGenericL( CStifItemParser& aItem )
+    {
+    
+     TInt ret = 0 ;
+      
+     _LIT(KTProvidertest , "tprovidertest") ;
+     iLog->Log(KTProvidertest) ;
+     
+     __UHEAP_MARK ;
+     
+     CEventDetails *eventDetails = CEventDetails :: NewL() ;
+
+
+       TInt ParsedValue ;
+      
+       TBufC<100> String; 
+       TPtrC sptr;
+       sptr.Set(String);
+       TInt ParsedValue1 ;
+       
+       
+       
+      if(aItem.GetNextInt( ParsedValue) != KErrNone )
+        {
+          _LIT(KLog , "Eventid  not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;
+        }
+ 
+
+
+     
+	if((ParsedValue >= KCallEvent ) && (ParsedValue <=KLogLbsAssistanceDataEvent))
+		{
+		eventDetails->SetEventType(ParsedValue) ;	
+		}
+
+	else 
+		{
+		_LIT(KLog , "Wrong input EventID") ;
+		iLog->Log(KLog) ;
+	//	User :: Leave(KErrGeneral) ;	
+		}
+
+
+        
+
+     
+       if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "duration not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         eventDetails->SetDurationType(ParsedValue) ;
+        }
+        
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "contact id not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         eventDetails->SetContactType(ParsedValue) ;
+        }
+        
+        
+        
+       if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "link value not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         eventDetails->SetLinkType(ParsedValue) ;
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "time value not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue> 0 )
+        {
+        
+         TTime time(ParsedValue);
+         eventDetails->SetTimer(time) ;
+        }
+        
+        _LIT(KNull,"NULL");
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "subject not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetSubjectType(sptr) ;  
+        }
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "phone number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetNumberType(sptr) ;  
+        }
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "remote party number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetRemotePartyType(sptr) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+          _LIT(KLog , "direction not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if(ParsedValue >= 0)
+    	{
+		eventDetails->SetDirectionType(ParsedValue) ;    	
+    	}
+    	
+        
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "description not found") ;
+	 	 iLog->Log(KLog) ;
+          
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetDescriptionType(sptr) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) !=KErrNone)
+        {
+          _LIT(KLog , "status value not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if(ParsedValue >= 0)
+        {
+          eventDetails->SetStatusType(ParsedValue) ;  
+        }
+        
+        
+        
+        if(aItem.GetNextInt(ParsedValue1) != KErrNone)
+        {
+         _LIT(KLog , "Sync/Async version  not found") ;
+	 	  iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+        
+        
+       if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "data not found") ;
+	 	 iLog->Log(KLog) ;
+          
+          User :: Leave(KErrArgument) ;  
+        }
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetDataType(sptr) ;  
+        }  
+          
+        
+        
+        
+        
+     
+     if(aItem.GetNextInt(ParsedValue) != KErrNone )
+        {
+         _LIT(KLog , "Expected value not found") ;
+	 	  iLog->Log(KLog) ;
+         ret = KErrNone ;
+        }
+     else
+        {
+            ret = ParsedValue ;
+        }
+        
+        
+        
+      
+        
+      
+      TRAPD(error , taddgenericL(eventDetails,ParsedValue1)) ;
+       delete eventDetails;
+       
+      
+       
+     __UHEAP_MARKEND;
+      
+      if(error == ret)
+          {
+         return KErrNone; 
+          }
+      return error ;
+
+    }   
+//-------------------------------------------------------------------------
+// Ctprovidertest :: Deletetest
+// Tests the delete use case ofthe provider
+//-------------------------------------------------------------------------    
+    
+TInt Ctprovidertest::DeletetestL( CStifItemParser& aItem )   
+	{
+	 TInt parseval =  0 ;
+	 TInt async = 0 ;
+	 TInt allEvents = 0 ;
+	 
+__UHEAP_MARK ;	 
+
+	 if(aItem.GetNextInt(async) != KErrNone)
+	 	{	
+	 	 _LIT(KLog , "Sync/Async version  not found") ;
+	 	 iLog->Log(KLog) ;
+	 	 User :: Leave(KErrNotFound) ;
+	 	}
+	 	
+	TInt ret = 0 ;
+	
+	if(aItem.GetNextInt(allEvents ))
+		{
+		 _LIT8(KLog , "All events field not found") ;
+		 iLog->Log(KLog) ;
+		}
+	 //Get the expected return value
+	 
+	 if(aItem.GetNextInt(parseval) != KErrNone)
+	 	{
+	 	 _LIT(KLog , "Expected output not found") ;
+	 	 iLog->Log(KLog) ;
+	 	 User :: Leave(KErrNotFound)  ;
+	 	}
+	 	
+	TInt retval = 0 ;	 	
+	
+	if(allEvents)
+		{
+		_LIT(KLog , "Delete all events called \n") ;
+		iLog->Log(KLog) ;
+		TRAPD(err , tdeleteAllEventsL(async)) ;
+		
+		if(err != parseval)
+			{
+			 _LIT(KLog , "Expected and the return values doesn't match") ;
+			 iLog->Log(KLog) ;
+			}
+		}
+	 	
+	 if(async)
+	 	{
+	 	 _LIT(KLog , "Functionality test of delete async api") ;
+	 	 iLog->Log(KLog) ;
+	 	 
+	    TRAPD(aerr , tdeleteTestasyncL(parseval)) ;
+	    
+	    if(aerr != parseval)
+	    	{
+	    	 _LIT(KLog , "Expected and the return value dont match") ;
+	    	 iLog->Log(KLog) ;
+	    	 retval = KErrArgument ; 
+	    	}
+	    else 
+	    	{
+	    	 retval = KErrNone ;	
+	    	}	
+	    	
+	 	}
+	 else 
+	 {
+		TRAPD(error , tdeleteTestL(parseval))  ; 	
+		
+		if(error != parseval)
+			{
+			 _LIT(KLog , "Expected and the return value dont match") ;
+			 iLog->Log(KLog) ;
+			 retval = KErrArgument ;
+			}
+		else
+			{
+				retval = KErrNone ;
+			}	
+	 }
+	
+	
+__UHEAP_MARKEND	;
+  
+ 
+    return KErrNone ;	 	
+	}
+	
+ // -----------------------------------------------------------------------------
+// Ctprovidertest::GetListGenericL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctprovidertest::GetListGenericL( CStifItemParser& aItem )
+
+{
+     TInt ret = 0 ;
+      
+     _LIT(KTProvidertest , "tprovidertest") ;
+     iLog->Log(KTProvidertest) ;
+     
+     __UHEAP_MARK ;
+     
+     CFilterDetails *filterDetails = CFilterDetails::NewL() ;
+        
+       TInt ParsedValue ;
+      
+       TBufC<100> String; 
+       TPtrC sptr;
+       sptr.Set(String);
+       TInt ParsedValue1 ;
+       
+        _LIT(KNull,"NULL");
+        
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "id not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          filterDetails->SetEventId(sptr) ;  
+        }
+       
+       
+      /* if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "Event id not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         filterDetails->SetEventId(ParsedValue) ;
+        }*/
+       
+       
+       
+       if(aItem.GetNextInt( ParsedValue) != KErrNone )
+        {
+          _LIT(KLog , "Eventtype  not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;
+        }
+         
+     if((ParsedValue >= KCallEvent ) && (ParsedValue <=KLogLbsAssistanceDataEvent))
+		{
+		filterDetails->SetEventType(ParsedValue) ;	
+		}
+       /* switch(ParsedValue)
+        {
+        
+        
+        case  KCallEvent :
+             {
+             filterDetails->SetEventType(KLogCallEventType) ;
+             break ;
+                
+             }
+                 
+        case  KLogDataEvent :
+             
+                
+              filterDetails->SetEventType(KLogDataEventType) ;
+              break;
+             
+                 
+        case  KLogFaxEvent :
+              filterDetails->SetEventType(KLogFaxEventType) ;
+                 break ;
+                 
+        case  KLogShortMessageEvent :
+              filterDetails->SetEventType(KLogShortMessageEventType) ;
+                 break ;
+                 
+        case  KLogMailEvent :
+              filterDetails->SetEventType(KLogMailEventType) ;
+                 break ;
+                 
+        case  KLogTaskSchedulerEvent :
+              filterDetails->SetEventType(KLogTaskSchedulerEventType) ;
+                 break ;
+                 
+        case  KLogPacketDataEvent :
+              filterDetails->SetEventType(KLogPacketDataEventType) ;
+                 break ;
+                 
+        case  KLogLbsSelfLocateEvent :
+              filterDetails->SetEventType(KLogLbsSelfLocateEventType) ;
+                 break ;
+                 
+        case  KLogLbsExternalLocateEvent :
+              filterDetails->SetEventType(KLogLbsExternalLocateEventType) ;
+                 break ;
+                 
+        case  KLogLbsTransmitLocationEvent :
+              filterDetails->SetEventType(KLogLbsTransmitLocationEventType) ;
+                 break ;
+                 
+        case  KLogLbsNetworkLocateEvent :
+              filterDetails->SetEventType(KLogLbsNetworkLocateEventType) ;
+                 break ;
+                 
+        case  KLogLbsAssistanceDataEvent :
+              filterDetails->SetEventType(KLogLbsAssistanceDataEventType) ;
+                 break ; 
+                 
+            default:
+            
+            break;
+                                                                       
+        }
+        */
+        
+       if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "contact id not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         filterDetails->SetContactType(ParsedValue) ;
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "time value not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue> 0 )
+        {
+        
+         TTime time(ParsedValue);
+         filterDetails->SetTimer(time) ;
+        }
+        
+       // _LIT(KNull,"NULL");
+        
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "phone number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          filterDetails->SetNumberType(sptr) ;  
+        }
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "remote party number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          filterDetails->SetRemotePartyType(sptr) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+          _LIT(KLog , "direction not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if(ParsedValue >= 0 )
+        {
+          filterDetails->SetDirectionType(ParsedValue) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) !=KErrNone)
+        {
+          _LIT(KLog , "status value not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if(ParsedValue >= 0 )
+        {
+          filterDetails->SetStatusType(ParsedValue) ;  
+        }
+        
+    
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "Recent list not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+        
+       /* switch(ParsedValue)
+            {
+            case -1 :
+                filterDetails->SetRecentList(KLogNullRecentList) ;
+                break;
+            case 1 :
+                filterDetails->SetRecentList(KLogRecentIncomingCalls);
+                break;
+            case 2 :
+                filterDetails->SetRecentList(KLogRecentOutgoingCalls);
+                break;
+            case 3 :
+                filterDetails->SetRecentList(KLogRecentMissedCalls);
+                break;
+            default :
+                break;
+            }*/
+     
+       if(ParsedValue == 0 || ParsedValue < -1 )
+        {
+         ;
+        }
+        else
+        {
+          filterDetails->SetRecentList(ParsedValue) ;  
+        }
+            
+        
+        
+         
+      if(aItem.GetNextInt( ParsedValue) != KErrNone )
+        {
+          _LIT(KLog , "all events  not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;
+        }
+        
+        
+       if(ParsedValue == 0 )
+        {
+         filterDetails->SetAllEvent(FALSE) ;
+        }
+        else if(ParsedValue == 1)
+        
+        {
+            filterDetails->SetAllEvent(TRUE); 
+        }
+         
+        
+         
+       
+       if(aItem.GetNextInt(ParsedValue1) != KErrNone)
+        {
+         _LIT(KLog , "Sync/Async version  not found") ;
+	 	  iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+        
+        
+      if(aItem.GetNextInt(ParsedValue) != KErrNone )
+        {
+         _LIT(KLog , "Expected value not found") ;
+	 	  iLog->Log(KLog) ;
+         ret = KErrNone ;
+        }
+     else
+        {
+            ret = ParsedValue ;
+        }
+        
+       
+       TRAPD(error , tgetlistgenericL(filterDetails,ParsedValue1)) ; 
+       delete filterDetails;
+       
+       __UHEAP_MARKEND;
+      
+      if(error == ret)
+        {
+         return KErrNone; 
+        }
+      return error; 
+       
+    
+}
+
+//=======================================================================================================
+// Position based parsing testcases 
+//=======================================================================================================
+
+
+// Ctprovidertest::AddGenericL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctprovidertest::AddGenericPosL( CStifItemParser& aItem )
+    {
+    
+     TInt ret = 0 ;
+      
+     _LIT(KTProvidertest , "tprovidertest") ;
+     iLog->Log(KTProvidertest) ;
+     
+     __UHEAP_MARK ;
+     
+     CEventDetails *eventDetails = CEventDetails :: NewL() ;
+
+
+       TInt ParsedValue ;
+      
+       TBufC<100> String; 
+       TPtrC sptr;
+       sptr.Set(String);
+       TInt ParsedValue1 ;
+       
+       
+       
+      if(aItem.GetNextInt( ParsedValue) != KErrNone )
+        {
+          _LIT(KLog , "Eventid  not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;
+        }
+        
+        if((ParsedValue >= KCallEvent ) && (ParsedValue <=KLogLbsAssistanceDataEvent))
+	        {
+	        eventDetails->SetEventType(ParsedValue) ;	
+	        }
+	        
+        else 
+	    	{
+	    	 _LIT(KLog , "Wrong input EventID") ;
+	    	 iLog->Log(KLog) ;
+	    	// User :: Leave(KErrGeneral) ;	
+	    	}
+	 
+      
+        
+
+     
+       if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "duration not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         eventDetails->SetDurationType(ParsedValue) ;
+        }
+        
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "contact id not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         eventDetails->SetContactType(ParsedValue) ;
+        }
+        
+        
+        
+       if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "link value not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         eventDetails->SetLinkType(ParsedValue) ;
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "time value not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue> 0 )
+        {
+        
+         TTime time(ParsedValue);
+         eventDetails->SetTimer(time) ;
+        }
+        
+        _LIT(KNull,"NULL");
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "subject not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetSubjectType(sptr) ;  
+        }
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "phone number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetNumberType(sptr) ;  
+        }
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "remote party number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetRemotePartyType(sptr) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) !=KErrNone)
+        {
+          _LIT(KLog , "direction not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if(ParsedValue >= 0)
+        {
+          eventDetails->SetDirectionType(ParsedValue) ;  
+        }
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "description not found") ;
+	 	 iLog->Log(KLog) ;
+          
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          eventDetails->SetDescriptionType(sptr) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+          _LIT(KLog , "status value not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if(ParsedValue >= 0)
+        {
+          eventDetails->SetStatusType(ParsedValue) ;  
+        }
+        
+        
+        
+        if(aItem.GetNextInt(ParsedValue1) != KErrNone)
+        {
+         _LIT(KLog , "Sync/Async version  not found") ;
+	 	  iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+        
+        
+        
+        
+        
+        
+        
+     
+     if(aItem.GetNextInt(ParsedValue) != KErrNone )
+        {
+         _LIT(KLog , "Expected value not found") ;
+	 	  iLog->Log(KLog) ;
+         ret = KErrNone ;
+        }
+     else
+        {
+            ret = ParsedValue ;
+        }
+        
+        
+        
+      
+        
+      
+      TRAPD(error , taddgenericPosL(eventDetails,ParsedValue1)) ;
+       delete eventDetails;
+       
+      
+       
+     __UHEAP_MARKEND;
+      
+      if(error == ret)
+          {
+         return KErrNone; 
+          }
+      return error ;
+
+    } 
+	
+	
+//-------------------------------------------------------------------------
+// Ctprovidertest :: Deletetest Position Based
+// Tests the delete use case ofthe provider
+//-------------------------------------------------------------------------    
+    
+TInt Ctprovidertest::DeleteGenericPosL( CStifItemParser& aItem )   
+	{
+	 TInt parseval =  0 ;
+	 TInt async = 0 ;
+	 
+__UHEAP_MARK ;	 
+
+	 if(aItem.GetNextInt(async) != KErrNone)
+	 	{	
+	 	 _LIT(KLog , "Sync/Async version  not found") ;
+	 	 iLog->Log(KLog) ;
+	 	 User :: Leave(KErrNotFound) ;
+	 	}
+	TInt ret = 0 ;
+	
+	 //Get the expected return value
+	 
+	 if(aItem.GetNextInt(parseval) != KErrNone)
+	 	{
+	 	 _LIT(KLog , "Expected output not found") ;
+	 	 iLog->Log(KLog) ;
+	 	 User :: Leave(KErrNotFound)  ;
+	 	}
+	 	
+TInt retval = 0 ;	 	
+	 	
+	 if(async)
+	 	{
+	 	 _LIT(KLog , "Functionality test of delete async api") ;
+	 	 iLog->Log(KLog) ;
+	 	 
+	    TRAPD(aerr , tdeleteTestasyncL(parseval)) ;
+	    
+	    if(aerr != parseval)
+	    	{
+	    	 _LIT(KLog , "Expected and the return value dont match") ;
+	    	 iLog->Log(KLog) ;
+	    	 retval = KErrArgument ; 
+	    	}
+	    else 
+	    	{
+	    	 retval = KErrNone ;	
+	    	}	
+	    	
+	 	}
+	 else 
+	 {
+		TRAPD(error , tdeleteTestPosL(parseval))  ; 	
+		
+		if(error != parseval)
+			{
+			 _LIT(KLog , "Expected and the return value dont match") ;
+			 iLog->Log(KLog) ;
+			 retval = KErrArgument ;
+			}
+		else
+			{
+				retval = KErrNone ;
+			}	
+	 }
+	
+	
+__UHEAP_MARKEND	;
+  
+ 
+    return KErrNone ;	 	
+	}
+
+ // -----------------------------------------------------------------------------
+// Ctprovidertest::GetListGenericL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctprovidertest::GetListGenericPosL( CStifItemParser& aItem )
+
+{
+     TInt ret = 0 ;
+      
+     _LIT(KTProvidertest , "tprovidertest") ;
+     iLog->Log(KTProvidertest) ;
+     
+     __UHEAP_MARK ;
+     
+     CFilterDetails *filterDetails = CFilterDetails::NewL() ;
+        
+       TInt ParsedValue ;
+      
+       TBufC<100> String; 
+       TPtrC sptr;
+       sptr.Set(String);
+       TInt ParsedValue1 ;
+       
+        _LIT(KNull,"NULL");
+        
+       if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "id not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          filterDetails->SetEventId(sptr) ;  
+        }
+       
+       
+       /*if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "Event id not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         filterDetails->SetEventId(ParsedValue) ;
+        }*/
+       
+       
+       
+       if(aItem.GetNextInt( ParsedValue) != KErrNone )
+        {
+          _LIT(KLog , "Eventtype  not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;
+        }
+         
+     if((ParsedValue >= KCallEvent ) && (ParsedValue <=KLogLbsAssistanceDataEvent))
+	        {
+	        filterDetails->SetEventType(ParsedValue) ;	
+	        }
+	        
+        else 
+	    	{
+	    	 _LIT(KLog , "Wrong input EventID") ;
+	    	 iLog->Log(KLog) ;
+	    	// User :: Leave(KErrGeneral) ;	
+	    	}
+      /*  switch(ParsedValue)
+        {
+        
+        
+        case  KCallEvent :
+             {
+             filterDetails->SetEventType(KLogCallEventType) ;
+             break ;
+                
+             }
+                 
+        case  KLogDataEvent :
+             
+                
+              filterDetails->SetEventType(KLogDataEventType) ;
+              break;
+             
+                 
+        case  KLogFaxEvent :
+              filterDetails->SetEventType(KLogFaxEventType) ;
+                 break ;
+                 
+        case  KLogShortMessageEvent :
+              filterDetails->SetEventType(KLogShortMessageEventType) ;
+                 break ;
+                 
+        case  KLogMailEvent :
+              filterDetails->SetEventType(KLogMailEventType) ;
+                 break ;
+                 
+        case  KLogTaskSchedulerEvent :
+              filterDetails->SetEventType(KLogTaskSchedulerEventType) ;
+                 break ;
+                 
+        case  KLogPacketDataEvent :
+              filterDetails->SetEventType(KLogPacketDataEventType) ;
+                 break ;
+                 
+        case  KLogLbsSelfLocateEvent :
+              filterDetails->SetEventType(KLogLbsSelfLocateEventType) ;
+                 break ;
+                 
+        case  KLogLbsExternalLocateEvent :
+              filterDetails->SetEventType(KLogLbsExternalLocateEventType) ;
+                 break ;
+                 
+        case  KLogLbsTransmitLocationEvent :
+              filterDetails->SetEventType(KLogLbsTransmitLocationEventType) ;
+                 break ;
+                 
+        case  KLogLbsNetworkLocateEvent :
+              filterDetails->SetEventType(KLogLbsNetworkLocateEventType) ;
+                 break ;
+                 
+        case  KLogLbsAssistanceDataEvent :
+              filterDetails->SetEventType(KLogLbsAssistanceDataEventType) ;
+                 break ; 
+                 
+            default:
+            
+            break;
+                                                                       
+        }*/
+        
+        
+       if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "contact id not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue > 0 )
+        {
+         filterDetails->SetContactType(ParsedValue) ;
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+         _LIT(KLog , "time value not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+     
+       if(ParsedValue> 0 )
+        {
+        
+         TTime time(ParsedValue);
+         filterDetails->SetTimer(time) ;
+        }
+        
+       
+        
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "phone number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          filterDetails->SetNumberType(sptr) ;  
+        }
+        
+        if(aItem.GetNextString(sptr) !=KErrNone)
+        {
+          _LIT(KLog , "remote party number not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if((sptr.Compare(KNull)))
+        {
+          filterDetails->SetRemotePartyType(sptr) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+          _LIT(KLog , "direction not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if( ParsedValue >= 0 )
+        {
+          filterDetails->SetDirectionType(ParsedValue) ;  
+        }
+        
+        if(aItem.GetNextInt(ParsedValue) !=KErrNone)
+        {
+          _LIT(KLog , "status value not found") ;
+	 	  iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;  
+        }
+        
+        if(ParsedValue >= 0)
+        {
+          filterDetails->SetStatusType(ParsedValue) ;  
+        }
+        
+       /* if(aItem.GetNextInt( ParsedValue) != KErrNone )
+        {
+          _LIT(KLog , "recentlist  not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;
+        }
+        
+        
+       if(ParsedValue == 0 )
+        {
+         filterDetails->SetRecentList(FALSE) ;
+        }
+        else if(ParsedValue == 1)
+        
+        {
+            filterDetails->SetRecentList(TRUE); 
+        }*/
+        
+        if(aItem.GetNextInt(ParsedValue) != KErrNone)
+        {
+        _LIT(KLog , "Recent list not found") ;
+	 	 iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+        
+       /* switch(ParsedValue)
+            {
+            case -1 :
+                filterDetails->SetRecentList(KLogNullRecentList) ;
+                break;
+            case 1 :
+                filterDetails->SetRecentList(KLogRecentIncomingCalls);
+                break;
+            case 2 :
+                filterDetails->SetRecentList(KLogRecentOutgoingCalls);
+                break;
+            case 3 :
+                filterDetails->SetRecentList(KLogRecentMissedCalls);
+                break;
+            default :
+                break;
+            }*/
+     
+       if(ParsedValue == 0 || ParsedValue < -1 )
+        {
+         ;
+        }
+        else
+        {
+          filterDetails->SetRecentList(ParsedValue) ;  
+        }
+            
+        
+        
+         
+      if(aItem.GetNextInt( ParsedValue) != KErrNone )
+        {
+          _LIT(KLog , "all events  not found") ;
+	 	 iLog->Log(KLog) ;
+          User :: Leave(KErrArgument) ;
+        }
+        
+        
+       if(ParsedValue == 0 )
+        {
+         filterDetails->SetAllEvent(FALSE) ;
+        }
+        else if(ParsedValue == 1)
+        
+        {
+            filterDetails->SetAllEvent(TRUE); 
+        }
+         
+        
+         
+       
+       if(aItem.GetNextInt(ParsedValue1) != KErrNone)
+        {
+         _LIT(KLog , "Sync/Async version  not found") ;
+	 	  iLog->Log(KLog) ;
+         User :: Leave(KErrArgument)  ;
+        }
+        
+      
+        
+      if(aItem.GetNextInt(ParsedValue) != KErrNone )
+        {
+         _LIT(KLog , "Expected value not found") ;
+	 	  iLog->Log(KLog) ;
+         ret = KErrNone ;
+        }
+     else
+        {
+            ret = ParsedValue ;
+        }
+        
+       
+       TRAPD(error , tgetlistgenericPosL(filterDetails,ParsedValue1)) ; 
+       delete filterDetails;
+       
+       __UHEAP_MARKEND;
+      
+      if(error == ret)
+        {
+         return KErrNone; 
+        }
+      return error; 
+       
+    
+}
+	
+		
+// -----------------------------------------------------------------------------
+// Ctprovidertest::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt Ctprovidertest::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  End of File