serviceproviders/sapi_messaging/tsrc/dev/tmessagingprovidertest/tmsgget_async/src/tmsgget_asyncBlocks.cpp
changeset 22 fc9cf246af83
child 33 50974a8b132e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_messaging/tsrc/dev/tmessagingprovidertest/tmsgget_async/src/tmsgget_asyncBlocks.cpp	Thu Aug 27 07:43:07 2009 +0300
@@ -0,0 +1,818 @@
+/*
+* Copyright (c) 2006-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] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "tmsgget_async.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 ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+_LIT8(KService, "Service.Messaging");
+_LIT8(KIDataSource,"IMessaging");
+_LIT(KMessageTypeSMS,"SMS");
+_LIT8(KErrCode,"ErrorCode");
+_LIT(KMessageTypeMMS,"MMS");
+
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ctmsgget_async::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Ctmsgget_async::Delete() 
+    {
+
+    }
+
+// -----------------------------------------------------------------------------
+// Ctmsgget_async::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Ctmsgget_async::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", Ctmsgget_async::ExampleL ),
+        ENTRY( "getlist_asyncsms", Ctmsgget_async::getlist_asyncsmsL ),
+        ENTRY( "getlist_asyncmms", Ctmsgget_async::getlist_asyncmmsL ),
+        ENTRY( "getlist_asyncstress", Ctmsgget_async::getlist_asyncstressL )
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+TInt Ctmsgget_async::HandleNotifyL(TInt aCmdId,
+                                            TInt aEventId,
+                                            CLiwGenericParamList& aEventParamList,
+                                            const CLiwGenericParamList& aInParamList)
+    {
+    TInt pos = 0;
+    const TLiwGenericParam* output = aEventParamList.FindFirst( pos,_L8("ReturnValue"));
+          
+          TInt val=0;     
+          if(output)     
+          {
+              //RFile fs;
+              //RFs rFs;
+              //rFs.Connect();
+              //rFs.Delete(_L("c:\\getheaderiter3_1.txt")); 
+              //fs.Create(r//fs, _L("c:\\getheaderiter3_1.txt"), EFileShareExclusive|EFileWrite)  ;
+
+              CLiwIterable* iterlist = output->Value().AsIterable();
+
+              TLiwVariant data;
+            
+              while( iterlist->NextL(data))
+                  {
+                  
+                  const CLiwMap* Map = data.AsMap(); 
+                  
+                  TLiwVariant mtmtype;
+                  Map->FindL(_L8("MessageType"),mtmtype);
+                  TPtrC  mtm = mtmtype.AsDes(); 
+                  if(iTestid==ESMS)
+                    {
+                    if(mtm.FindF(_L("SMS")) == KErrNotFound )   
+                    val++;
+                    }
+                  
+                  if(iTestid==EMMS)
+                    {
+                    if(mtm.FindF(_L("MMS")) == KErrNotFound )   
+                    val++;
+                    }
+                   
+                  
+                  TBuf8<50> buf;
+                  buf.Copy(mtm)   ;
+                  //fs.Write(_L8("Mtm Id :"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\n"));   /// writing mtm type 
+                  mtmtype.Reset();
+                  
+                  TLiwVariant sender;
+                  Map->FindL(_L8("Sender"),sender);
+                  TPtrC  send = sender.AsDes(); 
+                  
+                  //if(send.FindF(_L("9008032761")) == KErrNotFound)
+                  //   val++;
+                  
+                  
+                  buf.Copy(send)  ;
+                  //fs.Write(_L8("Sender :"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\n"));   /// writing sender 
+                  sender.Reset();
+                  TLiwVariant messageid;
+                  Map->FindL(_L8("MessageId"),messageid);
+                  TInt  id = (TInt)messageid.AsTInt32();
+              
+                  
+                  
+                  buf.Num(id) ;
+                  //fs.Write(_L8("Message id :"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\n"));   /// writing messageid
+                  messageid.Reset();
+                  
+                  TLiwVariant date;
+                  Map->FindL(_L8("Time"),date);
+                  
+                  
+                  TTime date1 =(TTime) date.AsTTime();
+                  
+                  
+                  TDateTime date2 = date1.DateTime();
+              
+                  buf.Num(date2.Day());
+                  //fs.Write(_L8("Day:"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\t"));   /// writing day
+
+                  buf.Num(date2.Month());
+                  //fs.Write(_L8("Month:"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\t"));   /// writing month
+                  
+                  buf.Num(date2.Year());
+                  //fs.Write(_L8("Year:"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\n"));   /// writing year
+                  date.Reset();
+
+                  TLiwVariant unreadflag;
+                  Map->FindL(_L8("Unread"),unreadflag);
+                  TBool  unread = (TBool)unreadflag.AsTBool(); 
+                  
+                  
+                  
+                  buf.Num(unread) ;
+                  //fs.Write(_L8("Unread flag :"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\n"));   /// writing unread
+                  unreadflag.Reset();
+                  TLiwVariant priorityflag;
+                  Map->FindL(_L8("Priority"),priorityflag);
+                  TPtrC  priority = priorityflag.AsDes(); 
+                  
+                  
+                  TLiwVariant bodytext;
+                  Map->FindL(_L8("BodyText"),bodytext);
+                  TPtrC  bodytxt = bodytext.AsDes(); 
+                  bodytext.Reset();
+                  
+                  buf.Copy(priority)  ;
+                  //fs.Write(_L8("Priority Flag :"));
+                  //fs.Write(buf);
+                  //fs.Write(_L8("\n"));   /// writing priority
+                  priorityflag.Reset();
+                  data.Reset(); /// upto here we get map by iterable list   
+
+                  }
+              //fs.Close();   
+              //rfs.Close();
+              
+              }
+           
+              CActiveScheduler::Stop();
+             if(0==val)
+             iResult= KErrNone;
+             else
+             iResult= KErrGeneral;
+           
+
+    }
+
+// -----------------------------------------------------------------------------
+// Ctmsgget_async::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctmsgget_async::ExampleL( CStifItemParser& aItem )
+    {
+
+    // Print to UI
+    _LIT( Ktmsgget_async, "tmsgget_async" );
+    _LIT( KExample, "In Example" );
+    TestModuleIf().Printf( 0, Ktmsgget_async, 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, Ktmsgget_async, 
+                                KParam, i, &string );
+        i++;
+        }
+
+    return KErrNone;
+
+    }
+
+
+TInt Ctmsgget_async::getlist_asyncsmsL(CStifItemParser& aItem )
+   {
+   iTestid = ESMS;
+   __UHEAP_MARK;
+   // Iter-3 test work
+   CLiwServiceHandler* iServiceHandler = CLiwServiceHandler::NewL();
+       
+       CLiwGenericParamList* inParamList = &(iServiceHandler->InParamListL());
+       CLiwGenericParamList* outParamList = &(iServiceHandler->OutParamListL());
+       
+       CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KIDataSource,KService);
+       crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+       
+       RCriteriaArray a;
+       
+       a.AppendL(crit);    
+       
+       iServiceHandler->AttachL(a);
+       
+       iServiceHandler->ExecuteServiceCmdL(*crit, *inParamList, *outParamList); 
+       
+       delete crit;
+       crit = NULL;
+       a.Reset();
+       
+       TInt pos = 0;
+       MLiwInterface* interface = NULL;
+       _LIT8(KDataSource, "IMessaging");
+       outParamList->FindFirst(pos,KDataSource );
+       if(pos != KErrNotFound)
+           {
+           interface = (*outParamList)[pos].Value().AsInterface(); 
+           }
+
+       outParamList->Reset();
+       // Iter-2 same
+       inParamList->Reset();
+
+
+       _LIT8(KCmd,"GetList");
+
+    // Newly added code
+       TLiwVariant content(_L("Inbox"));
+       TLiwGenericParam element1 ; 
+       element1.SetNameAndValueL(_L8("Type"),content);
+       inParamList->AppendL(element1);
+       content.Reset();
+       element1.Reset();
+       
+       CLiwDefaultMap* map = CLiwDefaultMap::NewL();
+       CleanupStack::PushL(map);
+
+       CLiwDefaultList* mtmtypelist = CLiwDefaultList::NewL();
+       CleanupStack::PushL(mtmtypelist);
+       
+       
+       TLiwVariant smsmtm(KMessageTypeSMS); // how the user wud gv this param
+       mtmtypelist->AppendL(smsmtm);
+       smsmtm.Reset();
+       TLiwVariant mmsmtm(KMessageTypeMMS);// how the user wud gv this param
+       //mtmtypelist->AppendL(mmsmtm);
+       mmsmtm.Reset();
+       
+       TLiwVariant add1(mtmtypelist);
+       
+       map->InsertL(_L8("MessageTypeList"), add1); // Mtmtype is added
+       mtmtypelist->DecRef();
+       CleanupStack::Pop(mtmtypelist);
+       add1.Reset(); 
+       
+       CLiwDefaultList* senderlist = CLiwDefaultList::NewL();
+       CleanupStack::PushL(senderlist);
+              
+       HBufC* address1 = HBufC::NewL(20)   ;
+       CleanupStack::PushL(address1);
+       address1->Des().Copy(_L("9008032761"));
+       TLiwVariant addres1(address1);
+       //senderlist->AppendL(addres1);
+       addres1.Reset();
+       CleanupStack::PopAndDestroy(address1);
+
+       TLiwVariant from(senderlist);
+       map->InsertL(_L8("SenderList"),from); // Sender list
+       from.Reset();
+
+      CleanupStack::Pop(senderlist);
+      senderlist->DecRef();
+              
+              
+              
+
+      TDateTime start(2009,EJanuary,22,0,0,0,0);
+      TTime startdate(start);
+      TLiwVariant date1(startdate);
+      map->InsertL(_L8("StartDate"),date1);
+      date1.Reset();
+      
+      TDateTime end(2010,EDecember,23,0,0,0,0);
+      TTime enddate(end) ; 
+      TLiwVariant date2(enddate);
+      map->InsertL(_L8("EndDate"),date2);
+      date2.Reset();
+      TLiwVariant filterparam(map);
+      TLiwGenericParam element ;  
+      element.SetNameAndValueL(_L8("Filter"),filterparam);
+      filterparam.Reset();
+   
+   
+     inParamList->AppendL(element);
+     element.Reset();
+     map->DecRef();
+     CleanupStack::Pop(map);
+     
+     CLiwDefaultMap* sortmap = CLiwDefaultMap::NewL();
+      CleanupStack::PushL(sortmap);
+      
+      HBufC* sort1 = HBufC::NewL(20)  ;
+      CleanupStack::PushL(sort1);
+      sort1->Des().Copy(_L("Date"));
+      TLiwVariant sort(sort1);
+      sortmap->InsertL(_L8("Key"), sort);
+      sort.Reset();
+      CleanupStack::PopAndDestroy(sort1);
+
+   
+      HBufC* order1 = HBufC::NewL(20) ;
+      CleanupStack::PushL(order1);
+      order1->Des().Copy(_L("Ascending"));
+      TLiwVariant order(order1);
+      sortmap->InsertL(_L8("Order"), order);
+      order.Reset();
+      CleanupStack::PopAndDestroy(order1);
+      
+
+      TLiwVariant sortordermap(sortmap);
+      TLiwGenericParam element2 ; 
+      element2.SetNameAndValueL(_L8("SortOrder"),sortordermap);
+      sortordermap.Reset();
+      
+      
+      inParamList->AppendL(element2);
+      element2.Reset();
+      
+      
+      sortmap->DecRef();
+      CleanupStack::Pop(sortmap);
+      
+     
+     interface->ExecuteCmdL( KCmd ,*inParamList ,*outParamList,KLiwOptASyncronous,this);
+     pos = 0 ;
+     const TLiwGenericParam* errcode=outParamList->FindFirst(pos,KErrCode);
+     TInt err = errcode->Value().AsTInt32();
+     if(!err)
+        CActiveScheduler::Start();
+     else
+        iResult = KErrGeneral;
+   
+    TInt index=0;
+
+    interface->Close();
+    iServiceHandler->Reset();
+    delete iServiceHandler;
+
+    __UHEAP_MARKEND;    
+
+    if(0 == iResult)
+     return KErrNone;
+    else
+     return KErrGeneral;
+       
+
+   }
+
+TInt Ctmsgget_async::getlist_asyncmmsL(CStifItemParser& aItem )
+   {
+   iTestid = EMMS;
+   __UHEAP_MARK;
+   // Iter-3 test work
+   CLiwServiceHandler* iServiceHandler = CLiwServiceHandler::NewL();
+       
+       CLiwGenericParamList* inParamList = &(iServiceHandler->InParamListL());
+       CLiwGenericParamList* outParamList = &(iServiceHandler->OutParamListL());
+       
+       CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KIDataSource,KService);
+       crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+       
+       RCriteriaArray a;
+       
+       a.AppendL(crit);    
+       
+       iServiceHandler->AttachL(a);
+       
+       iServiceHandler->ExecuteServiceCmdL(*crit, *inParamList, *outParamList); 
+       
+       delete crit;
+       crit = NULL;
+       a.Reset();
+       
+       TInt pos = 0;
+       MLiwInterface* interface = NULL;
+       _LIT8(KDataSource, "IMessaging");
+       outParamList->FindFirst(pos,KDataSource );
+       if(pos != KErrNotFound)
+           {
+           interface = (*outParamList)[pos].Value().AsInterface(); 
+           }
+
+       outParamList->Reset();
+       // Iter-2 same
+       inParamList->Reset();
+
+
+       _LIT8(KCmd,"GetList");
+
+    // Newly added code
+       TLiwVariant content(_L("Inbox"));
+       TLiwGenericParam element1 ; 
+       element1.SetNameAndValueL(_L8("Type"),content);
+       inParamList->AppendL(element1);
+       content.Reset();
+       element1.Reset();
+       
+       CLiwDefaultMap* map = CLiwDefaultMap::NewL();
+       CleanupStack::PushL(map);
+
+       CLiwDefaultList* mtmtypelist = CLiwDefaultList::NewL();
+       CleanupStack::PushL(mtmtypelist);
+       
+       TLiwVariant mmsmtm(KMessageTypeMMS);// how the user wud gv this param
+       mtmtypelist->AppendL(mmsmtm);
+       mmsmtm.Reset();
+       
+       TLiwVariant add1(mtmtypelist);
+       
+       map->InsertL(_L8("MessageTypeList"), add1); // Mtmtype is added
+       mtmtypelist->DecRef();
+       CleanupStack::Pop(mtmtypelist);
+       add1.Reset(); 
+       
+       CLiwDefaultList* senderlist = CLiwDefaultList::NewL();
+       CleanupStack::PushL(senderlist);
+              
+       HBufC* address1 = HBufC::NewL(20)   ;
+       CleanupStack::PushL(address1);
+       address1->Des().Copy(_L("9008032761"));
+       TLiwVariant addres1(address1);
+       //senderlist->AppendL(addres1);
+       addres1.Reset();
+       CleanupStack::PopAndDestroy(address1);
+
+       TLiwVariant from(senderlist);
+       map->InsertL(_L8("SenderList"),from); // Sender list
+       from.Reset();
+
+      CleanupStack::Pop(senderlist);
+      senderlist->DecRef();
+              
+              
+              
+
+      TDateTime start(2009,EJanuary,22,0,0,0,0);
+      TTime startdate(start);
+      TLiwVariant date1(startdate);
+      map->InsertL(_L8("StartDate"),date1);
+      date1.Reset();
+      
+      TDateTime end(2010,EDecember,23,0,0,0,0);
+      TTime enddate(end) ; 
+      TLiwVariant date2(enddate);
+      map->InsertL(_L8("EndDate"),date2);
+      date2.Reset();
+      TLiwVariant filterparam(map);
+      TLiwGenericParam element ;  
+      element.SetNameAndValueL(_L8("Filter"),filterparam);
+      filterparam.Reset();
+   
+   
+     inParamList->AppendL(element);
+     element.Reset();
+     map->DecRef();
+     CleanupStack::Pop(map);
+     
+     CLiwDefaultMap* sortmap = CLiwDefaultMap::NewL();
+      CleanupStack::PushL(sortmap);
+      
+      HBufC* sort1 = HBufC::NewL(20)  ;
+      CleanupStack::PushL(sort1);
+      sort1->Des().Copy(_L("Date"));
+      TLiwVariant sort(sort1);
+      sortmap->InsertL(_L8("Key"), sort);
+      sort.Reset();
+      CleanupStack::PopAndDestroy(sort1);
+
+   
+      HBufC* order1 = HBufC::NewL(20) ;
+      CleanupStack::PushL(order1);
+      order1->Des().Copy(_L("Ascending"));
+      TLiwVariant order(order1);
+      sortmap->InsertL(_L8("Order"), order);
+      order.Reset();
+      CleanupStack::PopAndDestroy(order1);
+      
+
+      TLiwVariant sortordermap(sortmap);
+      TLiwGenericParam element2 ; 
+      element2.SetNameAndValueL(_L8("SortOrder"),sortordermap);
+      sortordermap.Reset();
+      
+      
+      inParamList->AppendL(element2);
+      element2.Reset();
+      
+      
+      sortmap->DecRef();
+      CleanupStack::Pop(sortmap);
+     
+     interface->ExecuteCmdL( KCmd ,*inParamList ,*outParamList,KLiwOptASyncronous,this);
+     pos = 0 ;
+     const TLiwGenericParam* errcode=outParamList->FindFirst(pos,KErrCode);
+     TInt err = errcode->Value().AsTInt32();
+     if(!err)
+        CActiveScheduler::Start();
+     else
+        iResult = KErrGeneral;
+   
+    TInt index=0;
+
+    interface->Close();
+    iServiceHandler->Reset();
+    delete iServiceHandler;
+
+    __UHEAP_MARKEND;    
+
+    if(0 == iResult)
+     return KErrNone;
+    else
+     return KErrGeneral;
+       
+
+   }
+
+
+TInt Ctmsgget_async::getlist_asyncstressL(CStifItemParser& aItem )
+   {
+   iTestid = ESMS;
+   __UHEAP_MARK;
+   // Iter-3 test work
+   CLiwServiceHandler* iServiceHandler = CLiwServiceHandler::NewL();
+       
+       CLiwGenericParamList* inParamList = &(iServiceHandler->InParamListL());
+       CLiwGenericParamList* outParamList = &(iServiceHandler->OutParamListL());
+       
+       CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KIDataSource,KService);
+       crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+       
+       RCriteriaArray a;
+       
+       a.AppendL(crit);    
+       
+       iServiceHandler->AttachL(a);
+       
+       iServiceHandler->ExecuteServiceCmdL(*crit, *inParamList, *outParamList); 
+       
+       delete crit;
+       crit = NULL;
+       a.Reset();
+       
+       TInt pos = 0;
+       MLiwInterface* interface = NULL;
+       _LIT8(KDataSource, "IMessaging");
+       outParamList->FindFirst(pos,KDataSource );
+       if(pos != KErrNotFound)
+           {
+           interface = (*outParamList)[pos].Value().AsInterface(); 
+           }
+
+       outParamList->Reset();
+       // Iter-2 same
+       inParamList->Reset();
+
+
+       _LIT8(KCmd,"GetList");
+
+    // Newly added code
+       TLiwVariant content(_L("Inbox"));
+       TLiwGenericParam element1 ; 
+       element1.SetNameAndValueL(_L8("Type"),content);
+       inParamList->AppendL(element1);
+       content.Reset();
+       element1.Reset();
+       
+       CLiwDefaultMap* map = CLiwDefaultMap::NewL();
+       CleanupStack::PushL(map);
+
+       CLiwDefaultList* mtmtypelist = CLiwDefaultList::NewL();
+       CleanupStack::PushL(mtmtypelist);
+       
+       
+       TLiwVariant smsmtm(KMessageTypeSMS); // how the user wud gv this param
+       mtmtypelist->AppendL(smsmtm);
+       smsmtm.Reset();
+       TLiwVariant mmsmtm(KMessageTypeMMS);// how the user wud gv this param
+       //mtmtypelist->AppendL(mmsmtm);
+       mmsmtm.Reset();
+       
+       TLiwVariant add1(mtmtypelist);
+       
+       map->InsertL(_L8("MessageTypeList"), add1); // Mtmtype is added
+       mtmtypelist->DecRef();
+       CleanupStack::Pop(mtmtypelist);
+       add1.Reset(); 
+       
+       CLiwDefaultList* senderlist = CLiwDefaultList::NewL();
+       CleanupStack::PushL(senderlist);
+              
+       HBufC* address1 = HBufC::NewL(20)   ;
+       CleanupStack::PushL(address1);
+       address1->Des().Copy(_L("9008032761"));
+       TLiwVariant addres1(address1);
+       //senderlist->AppendL(addres1);
+       addres1.Reset();
+       CleanupStack::PopAndDestroy(address1);
+
+       TLiwVariant from(senderlist);
+       map->InsertL(_L8("SenderList"),from); // Sender list
+       from.Reset();
+
+      CleanupStack::Pop(senderlist);
+      senderlist->DecRef();
+              
+              
+              
+
+      TDateTime start(2009,EJanuary,22,0,0,0,0);
+      TTime startdate(start);
+      TLiwVariant date1(startdate);
+      map->InsertL(_L8("StartDate"),date1);
+      date1.Reset();
+      
+      TDateTime end(2010,EDecember,23,0,0,0,0);
+      TTime enddate(end) ; 
+      TLiwVariant date2(enddate);
+      map->InsertL(_L8("EndDate"),date2);
+      date2.Reset();
+      TLiwVariant filterparam(map);
+      TLiwGenericParam element ;  
+      element.SetNameAndValueL(_L8("Filter"),filterparam);
+      filterparam.Reset();
+   
+   
+     inParamList->AppendL(element);
+     element.Reset();
+     map->DecRef();
+     CleanupStack::Pop(map);
+     
+     CLiwDefaultMap* sortmap = CLiwDefaultMap::NewL();
+      CleanupStack::PushL(sortmap);
+      
+      HBufC* sort1 = HBufC::NewL(20)  ;
+      CleanupStack::PushL(sort1);
+      sort1->Des().Copy(_L("Date"));
+      TLiwVariant sort(sort1);
+      sortmap->InsertL(_L8("Key"), sort);
+      sort.Reset();
+      CleanupStack::PopAndDestroy(sort1);
+
+   
+      HBufC* order1 = HBufC::NewL(20) ;
+      CleanupStack::PushL(order1);
+      order1->Des().Copy(_L("Ascending"));
+      TLiwVariant order(order1);
+      sortmap->InsertL(_L8("Order"), order);
+      order.Reset();
+      CleanupStack::PopAndDestroy(order1);
+      
+
+      TLiwVariant sortordermap(sortmap);
+      TLiwGenericParam element2 ; 
+      element2.SetNameAndValueL(_L8("SortOrder"),sortordermap);
+      sortordermap.Reset();
+      
+      
+      inParamList->AppendL(element2);
+      element2.Reset();
+      
+      
+      sortmap->DecRef();
+      CleanupStack::Pop(sortmap);
+      TInt i=0;
+      pos = 0 ;
+     for(i=0;i<20;i++)
+     {
+     interface->ExecuteCmdL( KCmd ,*inParamList ,*outParamList,KLiwOptASyncronous,this);
+     
+     const TLiwGenericParam* errcode=outParamList->FindFirst(pos,KErrCode);
+     TInt err = errcode->Value().AsTInt32();
+     if(!err)
+        CActiveScheduler::Start();
+     else
+        iResult = KErrGeneral;
+     }
+   
+    TInt index=0;
+
+    interface->Close();
+    iServiceHandler->Reset();
+    delete iServiceHandler;
+
+    __UHEAP_MARKEND;    
+
+    if(0 == iResult)
+     return KErrNone;
+    else
+     return KErrGeneral;
+       
+
+   }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove