--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sapi_logging/tsrc/dev/tloggingprovidertest/src/tdeletetest.cpp Mon Mar 30 12:51:10 2009 +0300
@@ -0,0 +1,998 @@
+/*
+* 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 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:
+*
+*/
+
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+
+#include <LiwServiceHandler.h>
+#include <LiwCommon.h>
+
+
+#include "tconstants.h"
+#include "tprovidertest.h"
+#include "tprovidercallback.h"
+#include "serviceerrno.h"
+
+void Ctprovidertest :: tdeleteTestL(TInt aExpected)
+{
+ if(aExpected != KErrNone)
+ {
+ _LIT(KLog , "Negative test case for delete api") ;
+ iLog->Log(KLog) ;
+ tdeleteNegativeL();
+
+ }
+
+ else
+ {
+ _LIT(KLog , "Functional test for the delete api") ;
+ iLog->Log(KLog) ;
+ tdeleteFunctionalL() ;
+ }
+}
+
+
+//----------------------------------------------------------------------
+// internal utility function which tests the functionality of delete api
+//
+//----------------------------------------------------------------------
+
+void Ctprovidertest :: tdeleteFunctionalL()
+ {
+
+ _LIT(KOwnEventSubject, "RandomLogEvent");
+ _LIT(KOwnEventRemoteParty, "OwnContact");
+
+ CLiwServiceHandler* ServiceHandler = CLiwServiceHandler::NewL();
+ // Input and output parameter list
+ CLiwGenericParamList* inputlist = &(ServiceHandler->InParamListL());
+
+ CLiwGenericParamList* outputlist = &(ServiceHandler->OutParamListL());
+
+ CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KDsInterfaceName , KLoggingContents) ;
+
+ crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+
+ RCriteriaArray a;
+
+ a.AppendL(crit);
+
+ ServiceHandler->AttachL(a) ;
+
+ ServiceHandler->ExecuteServiceCmdL(*crit, *inputlist, *outputlist);
+
+ TInt pos = 0;
+
+
+
+ const TLiwGenericParam *genericparm = outputlist->FindFirst(pos , KDsInterfaceName);
+
+ if(!genericparm)
+ {
+ _LIT(KLog , "Logging interface not found") ;
+ iLog->Log(KLog) ;
+
+ User :: Leave(KErrArgument) ;
+ }
+
+ MLiwInterface* LogInterface = (genericparm->Value()).AsInterface();
+
+ //Add an event and then delete this added event ;
+
+ CLiwDefaultMap *EventDetails = CLiwDefaultMap :: NewL() ;
+
+ EventDetails->InsertL(KEventTypeKey ,TLiwVariant((TInt32)KLogShortMessageEvent)) ;
+
+
+ TBufC16<10> contentType(KContentType) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+
+
+ inputlist->AppendL(TLiwGenericParam(KEventDetails , TLiwVariant(EventDetails))) ;
+
+ EventDetails->DecRef();
+ TBufC8<20>CmdBuf(KCmdAdd) ;
+
+ LogInterface->ExecuteCmdL(CmdBuf , *inputlist , *outputlist) ;
+
+ //Now get the id to deleted
+
+ pos = 0 ;
+
+ const TLiwGenericParam *outparm1 = outputlist->FindFirst(pos , KResponse) ;
+
+ if(!outparm1)
+ {
+ _LIT8(KLog , "Log id of the delete item not found") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ //Now delete the added item
+
+// TInt itemid = (outparm1->Value()).AsTInt32() ;
+
+ TBufC<20> itemid = (outparm1->Value()).AsDes() ;
+
+ /* if(itemid < 0 )
+ {
+ _LIT(KLog , "Invalid item id ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }*/
+
+ inputlist->Reset() ; outputlist->Reset() ;
+
+ CLiwDefaultMap *Idmap = CLiwDefaultMap :: NewL() ;
+ Idmap->InsertL(KLogId ,TLiwVariant(itemid)) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+
+
+ // inputlist->AppendL(TLiwGenericParam(KLogId , TLiwVariant((TInt32)itemid))) ;
+ inputlist->AppendL(TLiwGenericParam(KData , TLiwVariant(Idmap))) ;
+ Idmap->DecRef();
+ CmdBuf = KCmdDelete ;
+ LogInterface->ExecuteCmdL(CmdBuf , *inputlist , *outputlist) ;
+
+ pos = 0 ;
+ const TLiwGenericParam *Errprm = outputlist->FindFirst(pos , KErrCode ) ;
+
+ if(!Errprm)
+ {
+ _LIT(KLog , "Generic error param missing form the outputlist of delete" ) ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ TInt retval = Errprm->Value().AsTInt32() ;
+
+ if(retval != SErrNone )
+ {
+ _LIT(KLog , "Functionality test of delete call failed ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+ LogInterface->Close() ;
+ delete ServiceHandler;
+
+
+ a.ResetAndDestroy();
+ a.Close();
+
+
+
+
+ }
+
+
+ //----------------------------------------------------------------------
+// Negative testcase for delete api
+//
+//----------------------------------------------------------------------
+
+void Ctprovidertest :: tdeleteNegativeL()
+ {
+
+
+ CLiwServiceHandler* ServiceHandler = CLiwServiceHandler::NewL();
+ // Input and output parameter list
+ CLiwGenericParamList* inputlist = &(ServiceHandler->InParamListL());
+
+ CLiwGenericParamList* outputlist = &(ServiceHandler->OutParamListL());
+
+ CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KDsInterfaceName , KLoggingContents) ;
+
+ crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+
+ RCriteriaArray a;
+
+ a.AppendL(crit);
+
+ ServiceHandler->AttachL(a) ;
+
+ TBufC16<10> contentType(KContentType) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+
+
+ ServiceHandler->ExecuteServiceCmdL(*crit, *inputlist, *outputlist);
+
+ TInt pos = 0;
+
+
+ const TLiwGenericParam *genericparm = outputlist->FindFirst(pos , KDsInterfaceName);
+
+ if(!genericparm)
+ {
+ _LIT(KLog , "Logging interface not found") ;
+ iLog->Log(KLog) ;
+
+ User :: Leave(KErrArgument) ;
+ }
+
+ MLiwInterface* LogInterface = (genericparm->Value()).AsInterface();
+
+
+
+
+
+
+ TInt itemid = -1;
+ TBuf<8> des;
+ des.Num(itemid);
+
+
+ inputlist->Reset() ;
+ outputlist->Reset() ;
+
+ CLiwDefaultMap *Idmap = CLiwDefaultMap :: NewL() ;
+ Idmap->InsertL(KLogId ,TLiwVariant(des)) ;
+
+ inputlist->AppendL(TLiwGenericParam(KData , TLiwVariant(Idmap))) ;
+ Idmap->DecRef();
+ TBufC8<20>CmdBuf(KCmdDelete) ;
+ //CmdBuf = KCmdDelete ;
+ LogInterface->ExecuteCmdL(CmdBuf , *inputlist , *outputlist) ;
+
+ pos = 0 ;
+ const TLiwGenericParam *Errprm = outputlist->FindFirst(pos , KErrCode ) ;
+
+ if(!Errprm)
+ {
+ _LIT(KLog , "Generic error param missing form the outputlist of delete" ) ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ TInt retval = Errprm->Value().AsTInt32() ;
+
+ if(retval != SErrNone )
+ {
+ LogInterface->Close() ;
+ delete ServiceHandler;
+
+
+ a.ResetAndDestroy();
+ a.Close();
+
+
+
+ _LIT(KLog , "Functionality test of delete call failed ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ LogInterface->Close() ;
+ delete ServiceHandler;
+
+
+ a.ResetAndDestroy();
+ a.Close();
+
+
+ }
+
+
+//-----------------------------------------------------------------------------
+// Functionality test for delete async call
+//-----------------------------------------------------------------------------
+void Ctprovidertest :: tdeleteTestasyncL(TInt aExpected)
+{
+ if(aExpected != KErrNone)
+ {
+ _LIT(KLog , "Negative test case for delete api") ;
+ iLog->Log(KLog) ;
+ tdeleteNegativeasyncL();
+
+ }
+
+ else
+ {
+ _LIT(KLog , "Functional test for the delete async api") ;
+ iLog->Log(KLog) ;
+ tdeleteFunctionalAsyncL() ;
+ }
+}
+
+//----------------------------------------------------------------------
+// positive test case for delete async
+//
+//----------------------------------------------------------------------
+
+
+void Ctprovidertest :: tdeleteFunctionalAsyncL(void)
+{
+
+ NotifyCB Callback ;
+
+ _LIT(KOwnEventSubject, "RandomLogEvent");
+ _LIT(KOwnEventRemoteParty, "OwnContact");
+
+ CLiwServiceHandler* ServiceHandler = CLiwServiceHandler::NewL();
+ // Input and output parameter list
+ CLiwGenericParamList* inputlist = &(ServiceHandler->InParamListL());
+
+ CLiwGenericParamList* outputlist = &(ServiceHandler->OutParamListL());
+
+ CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KDsInterfaceName , KLoggingContents) ;
+
+ crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+
+ RCriteriaArray a;
+
+ a.AppendL(crit);
+
+ ServiceHandler->AttachL(a) ;
+
+ ServiceHandler->ExecuteServiceCmdL(*crit, *inputlist, *outputlist);
+
+ TInt pos = 0;
+
+
+ const TLiwGenericParam *genericparm = outputlist->FindFirst(pos , KDsInterfaceName);
+
+ if(!genericparm)
+ {
+ _LIT(KLog , "Logging interface not found") ;
+ iLog->Log(KLog) ;
+
+ User :: Leave(KErrArgument) ;
+ }
+
+ MLiwInterface* LogInterface = (genericparm->Value()).AsInterface();
+
+ //Add an event and then delete this added event ;
+
+ CLiwDefaultMap *EventDetails = CLiwDefaultMap :: NewL() ;
+
+ EventDetails->InsertL(KEventTypeKey ,TLiwVariant((TInt32)KLogShortMessageEvent)) ;
+
+
+ /**
+ * First append content type
+ */
+
+ TBufC16<10> contentType(KContentType) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+
+
+ inputlist->AppendL(TLiwGenericParam(KEventDetails , TLiwVariant(EventDetails))) ;
+
+ EventDetails->DecRef();
+ TBufC8<20>CmdBuf(KCmdAdd) ;
+
+ LogInterface->ExecuteCmdL(CmdBuf , *inputlist , *outputlist) ;
+
+ //Now get the id to deleted
+
+ pos = 0 ;
+
+ const TLiwGenericParam *outparm1 = outputlist->FindFirst(pos , KResponse) ;
+
+ if(!outparm1)
+ {
+ _LIT8(KLog , "Log id of the delete item not found") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ //Now delete the added item
+
+ TBufC<20> itemid = (outparm1->Value()).AsDes();
+// TInt itemid = (outparm1->Value()).AsTInt32() ;
+
+ /*if(itemid < 0 )
+ {
+ _LIT(KLog , "Invalid item id ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }*/
+
+ inputlist->Reset() ; outputlist->Reset() ;
+ CLiwDefaultMap *Idmap = CLiwDefaultMap :: NewL() ;
+ Idmap->InsertL(KLogId ,TLiwVariant(itemid)) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+
+
+ inputlist->AppendL(TLiwGenericParam(KData , TLiwVariant(Idmap))) ;
+ Idmap->DecRef();
+ CmdBuf = KCmdDelete ;
+ LogInterface->ExecuteCmdL(CmdBuf , *inputlist , *outputlist ,KLiwOptASyncronous, &Callback) ;
+
+ pos = 0 ;
+ const TLiwGenericParam *Errprm = outputlist->FindFirst(pos , KErrCode ) ;
+
+ if(!Errprm)
+ {
+ _LIT(KLog , "Generic error param missing form the outputlist of delete" ) ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ TInt retval = Errprm->Value().AsTInt32() ;
+
+ if(retval != SErrNone )
+ {
+ _LIT(KLog , "Functionality test of delete call failed ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ Callback.Start() ;
+
+ if(Callback.Status() != KErrNone)
+ {
+ _LIT(KLog , "Async status error ") ;
+ iLog->Log(KLog) ;
+ User :: Leave (Callback.Status()) ;
+ }
+ LogInterface->Close() ;
+ delete ServiceHandler;
+
+
+ a.ResetAndDestroy();
+ a.Close();
+
+
+}
+
+//----------------------------------------------------------------------
+// negative test case for delete async
+//
+//----------------------------------------------------------------------
+
+
+
+void Ctprovidertest :: tdeleteNegativeasyncL(void)
+{
+
+ NotifyCB Callback ;
+
+
+ CLiwServiceHandler* ServiceHandler = CLiwServiceHandler::NewL();
+ // Input and output parameter list
+ CLiwGenericParamList* inputlist = &(ServiceHandler->InParamListL());
+
+ CLiwGenericParamList* outputlist = &(ServiceHandler->OutParamListL());
+
+ CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KDsInterfaceName , KLoggingContents) ;
+
+ crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+
+ RCriteriaArray a;
+
+ a.AppendL(crit);
+
+ ServiceHandler->AttachL(a) ;
+
+ ServiceHandler->ExecuteServiceCmdL(*crit, *inputlist, *outputlist);
+
+ TInt pos = 0;
+
+
+ const TLiwGenericParam *genericparm = outputlist->FindFirst(pos , KDsInterfaceName);
+
+ if(!genericparm)
+ {
+ _LIT(KLog , "Logging interface not found") ;
+ iLog->Log(KLog) ;
+
+ User :: Leave(KErrArgument) ;
+ }
+
+ MLiwInterface* LogInterface = (genericparm->Value()).AsInterface();
+
+
+
+
+ TInt itemid = -1;
+ TBuf<8> des;
+ des.Num(itemid);
+
+ inputlist->Reset() ;
+ outputlist->Reset() ;
+
+ CLiwDefaultMap *Idmap = CLiwDefaultMap :: NewL() ;
+ Idmap->InsertL(KLogId ,TLiwVariant(des)) ;
+
+ TBufC16<10> contentType(KContentType) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+
+ inputlist->AppendL(TLiwGenericParam(KData , TLiwVariant(Idmap))) ;
+ TBufC8<20>CmdBuf(KCmdDelete) ;
+ Idmap->DecRef();
+ //CmdBuf = KCmdDelete ;
+ LogInterface->ExecuteCmdL(CmdBuf , *inputlist , *outputlist ,KLiwOptASyncronous , &Callback) ;
+
+ pos = 0 ;
+ const TLiwGenericParam *Errprm = outputlist->FindFirst(pos , KErrCode ) ;
+
+ if(!Errprm)
+ {
+ _LIT(KLog , "Generic error param missing form the outputlist of delete" ) ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ TInt retval = Errprm->Value().AsTInt32() ;
+
+ if(retval != SErrNone )
+ {
+ _LIT(KLog , "Functionality test of delete call failed ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ Callback.Start() ;
+
+ if(Callback.Status() != KErrNone)
+ {
+ _LIT(KLog , "Async status error ") ;
+ iLog->Log(KLog) ;
+ User :: Leave (Callback.Status()) ;
+ }
+ LogInterface->Close() ;
+ delete ServiceHandler;
+
+
+ a.ResetAndDestroy();
+ a.Close();
+
+
+}
+
+/**
+ * Delete testcase for deleting all events
+ */
+
+ void Ctprovidertest :: tdeleteAllEventsL(TInt aSync)
+ {
+ if(aSync)
+ {
+ tdeleteAllEventsAsyncL() ;
+ }
+ else
+ {
+ tdeleteAllEventsSyncL() ;
+ }
+ }
+
+
+/**
+ * Synchronously delete all events
+ */
+
+ void Ctprovidertest :: tdeleteAllEventsSyncL()
+ {
+ CLiwServiceHandler* ServiceHandler = CLiwServiceHandler::NewL();
+ // Input and output parameter list
+ CLiwGenericParamList* inputlist = &(ServiceHandler->InParamListL());
+
+ CLiwGenericParamList* outputlist = &(ServiceHandler->OutParamListL());
+
+ CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KDsInterfaceName , KLoggingContents) ;
+
+ crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+
+ RCriteriaArray a;
+
+ a.AppendL(crit);
+
+ ServiceHandler->AttachL(a) ;
+
+
+ ServiceHandler->ExecuteServiceCmdL(*crit, *inputlist, *outputlist);
+
+ TInt pos = 0;
+ const TLiwGenericParam *genericparm = outputlist->FindFirst(pos , KDsInterfaceName);
+
+ if(!genericparm)
+ {
+ _LIT(KLog , "Logging interface not found") ;
+ iLog->Log(KLog) ;
+
+ User :: Leave(KErrArgument) ;
+ }
+
+ MLiwInterface* LogInterface = (genericparm->Value()).AsInterface();
+
+
+
+ // set the identity information
+ TBufC8<20>CmdBufSet(KCmdGetList) ;
+
+ outputlist->Reset() ;
+
+ inputlist->Reset() ;
+
+ CLiwDefaultMap *EventFilter = CLiwDefaultMap :: NewL() ;
+
+ //if(aDetails->GetEventId()!=0)
+
+ EventFilter->InsertL(KAllEvents , TLiwVariant(TRUE)) ;
+
+
+ TBufC16<10> contentType(KContentType) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+ inputlist->AppendL(TLiwGenericParam(KFilter , TLiwVariant(EventFilter))) ;
+ EventFilter->DecRef() ;
+
+ LogInterface->ExecuteCmdL(CmdBufSet , *inputlist , *outputlist );
+
+
+
+ /**
+ * Extract the error param, and check the status of the call
+ */
+ TInt index = 0 ;
+
+ const TLiwGenericParam *ErrCode = outputlist->FindFirst(index , KErrCode) ;
+
+ if(!ErrCode )
+ {
+ _LIT(KLog , "Generic error param missing form the outputlist of add" ) ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ TInt retval = ErrCode->Value().AsTInt32() ;
+
+ if(retval != SErrNone )
+ {
+ _LIT(KLog , "Functionality test of add call failed ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+
+
+ pos = 0 ;
+
+ const TLiwGenericParam *LogIterParam = outputlist->FindFirst(pos , KLogIter) ;
+
+
+
+ CLiwIterable *LogIter = (LogIterParam->Value()).AsIterable() ;
+
+ if(!LogIter)
+ {
+ _LIT(KLog , "LogIterator not found \n") ;
+ iLog->Log(KLog) ;
+ User :: Leave (KErrGeneral) ;
+ }
+ TLiwVariant Events ;
+ TLiwVariant EventDetails ;
+
+
+
+ CmdBufSet = KCmdDelete ;
+
+ while(LogIter->NextL(EventDetails))
+ {
+ const CLiwMap *eventDetails = EventDetails.AsMap() ;
+
+ if(eventDetails->FindL(KLogId , Events) == KErrNotFound)
+ {
+ _LIT(KLog , "Item_id not found") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+
+
+ TInt32 eventid = Events.AsTInt32() ;
+
+ inputlist->Reset() ;
+
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(KContentType))) ;
+ inputlist->AppendL(TLiwGenericParam(KLogId , TLiwVariant(eventid))) ;
+
+
+ LogInterface->ExecuteCmdL(CmdBufSet , *inputlist , *outputlist ) ;
+
+ (const_cast<CLiwMap *>(eventDetails))->DecRef() ;
+ }
+
+ EventDetails.Reset() ;
+ Events.Reset() ;
+
+ CmdBufSet = KCmdGetList ;
+
+
+ inputlist->Reset() ;
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(KContentType))) ;
+ LogInterface->ExecuteCmdL(CmdBufSet , *inputlist , *outputlist );
+
+
+ index = 0 ;
+ ErrCode = outputlist->FindFirst(index , KErrCode) ;
+
+ if(!ErrCode )
+ {
+ _LIT(KLog , "Generic error param missing form the outputlist of add" ) ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ retval = ErrCode->Value().AsTInt32() ;
+
+ if(retval != SErrNone )
+ {
+ _LIT(KLog , "Functionality test of add call failed ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+
+ LogIterParam = outputlist->FindFirst(pos , KLogIter) ;
+ LogIter = (LogIterParam->Value()).AsIterable() ;
+
+ TInt totalCnt ;
+
+ for( totalCnt = 0 ; LogIter->NextL(EventDetails) ; ++totalCnt)
+ {
+ const CLiwMap *eventDetails = EventDetails.AsMap() ;
+
+ if(eventDetails->FindL(KLogId , Events) == KErrNotFound)
+ {
+ _LIT(KLog , "Item_id not found") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+
+
+ TInt32 eventid = Events.AsTInt32() ;
+
+ inputlist->Reset() ;
+
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(KContentType))) ;
+ inputlist->AppendL(TLiwGenericParam(KLogId , TLiwVariant(eventid))) ;
+
+ LogInterface->ExecuteCmdL(CmdBufSet , *inputlist , *outputlist ) ;
+
+ (const_cast<CLiwMap *>(eventDetails))->DecRef() ;
+ }
+
+ Events.Reset() ;
+ EventDetails.Reset() ;
+ LogInterface->Close() ;
+ delete ServiceHandler ;
+ a.ResetAndDestroy() ;
+ a.Close() ;
+
+ if(totalCnt > 0)
+ {
+ _LIT(KLog , "Total count is still greater than zero") ;
+ iLog->Log(KLog) ;
+ User :: Leave (KErrGeneral) ;
+ }
+
+ }
+
+/**
+ * Synchronously delete all events
+ */
+
+ void Ctprovidertest :: tdeleteAllEventsAsyncL(void)
+ {
+ CLiwServiceHandler* ServiceHandler = CLiwServiceHandler::NewL();
+ // Input and output parameter list
+ CLiwGenericParamList* inputlist = &(ServiceHandler->InParamListL());
+
+ CLiwGenericParamList* outputlist = &(ServiceHandler->OutParamListL());
+
+ CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KDsInterfaceName , KLoggingContents) ;
+
+ crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+
+ RCriteriaArray a;
+
+ a.AppendL(crit);
+
+ ServiceHandler->AttachL(a) ;
+
+
+ ServiceHandler->ExecuteServiceCmdL(*crit, *inputlist, *outputlist);
+
+ TInt pos = 0;
+ const TLiwGenericParam *genericparm = outputlist->FindFirst(pos , KDsInterfaceName);
+
+ if(!genericparm)
+ {
+ _LIT(KLog , "Logging interface not found") ;
+ iLog->Log(KLog) ;
+
+ User :: Leave(KErrArgument) ;
+ }
+
+ MLiwInterface* LogInterface = (genericparm->Value()).AsInterface();
+
+
+
+ // set the identity information
+ TBufC8<20>CmdBufSet(KCmdGetList) ;
+
+ outputlist->Reset() ;
+
+ inputlist->Reset() ;
+
+ CLiwDefaultMap *EventFilter = CLiwDefaultMap :: NewL() ;
+
+ //if(aDetails->GetEventId()!=0)
+
+ EventFilter->InsertL(KAllEvents , TLiwVariant(TRUE)) ;
+
+
+ TBufC16<10> contentType(KContentType) ;
+
+ //Insert the contenttype to inputlist
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(contentType))) ;
+ inputlist->AppendL(TLiwGenericParam(KFilter , TLiwVariant(EventFilter))) ;
+ EventFilter->DecRef() ;
+
+ LogInterface->ExecuteCmdL(CmdBufSet , *inputlist , *outputlist );
+
+
+
+ /**
+ * Extract the error param, and check the status of the call
+ */
+ TInt index = 0 ;
+
+ const TLiwGenericParam *ErrCode = outputlist->FindFirst(index , KErrCode) ;
+
+ if(!ErrCode )
+ {
+ _LIT(KLog , "Generic error param missing form the outputlist of add" ) ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ TInt retval = ErrCode->Value().AsTInt32() ;
+
+ if(retval != SErrNone )
+ {
+ _LIT(KLog , "Functionality test of add call failed ") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+
+
+ pos = 0 ;
+
+ const TLiwGenericParam *LogIterParam = outputlist->FindFirst(pos , KLogIter) ;
+
+
+
+ CLiwIterable *LogIter = (LogIterParam->Value()).AsIterable() ;
+ TLiwVariant Events ;
+ TLiwVariant EventDetails ;
+
+
+
+ CmdBufSet = KCmdDelete ;
+ NotifyCB Callback ;
+
+ while(LogIter->NextL(EventDetails))
+ {
+ const CLiwMap *eventDetails = EventDetails.AsMap() ;
+
+ if(eventDetails->FindL(KLogId , Events) == KErrNotFound)
+ {
+ _LIT(KLog , "Item_id not found") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+
+
+ TUid eventid = Events.AsTUid() ;
+
+ inputlist->Reset() ;
+
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(KContentType))) ;
+ inputlist->AppendL(TLiwGenericParam(KLogId , TLiwVariant(eventid))) ;
+
+
+
+ LogInterface->ExecuteCmdL(CmdBufSet , *inputlist , *outputlist , 0 , &Callback ) ;
+ Callback.Start() ;
+
+ (const_cast<CLiwMap *>(eventDetails))->DecRef() ;
+
+ if(Callback.Status() != KErrNone)
+ {
+ _LIT(KLog , "Callback status not KErrNone") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+ }
+
+ Events.Reset() ;
+ EventDetails.Reset() ;
+
+ LogIterParam = outputlist->FindFirst(pos , KLogIter) ;
+ LogIter = (LogIterParam->Value()).AsIterable() ;
+
+ TInt totalCnt ;
+
+ for( totalCnt = 0 ; LogIter->NextL(EventDetails) ; ++totalCnt)
+ {
+ const CLiwMap *eventDetails = EventDetails.AsMap() ;
+
+ if(eventDetails->FindL(KLogId , Events) == KErrNotFound)
+ {
+ _LIT(KLog , "Item_id not found") ;
+ iLog->Log(KLog) ;
+ User :: Leave(KErrArgument) ;
+ }
+
+
+
+ TInt32 eventid = Events.AsTInt32() ;
+
+ inputlist->Reset() ;
+
+ inputlist->AppendL(TLiwGenericParam(KContentTypeKey , TLiwVariant(KContentType))) ;
+ inputlist->AppendL(TLiwGenericParam(KLogId , TLiwVariant(eventid))) ;
+
+ LogInterface->ExecuteCmdL(CmdBufSet , *inputlist , *outputlist ) ;
+
+ (const_cast<CLiwMap *>(eventDetails))->DecRef() ;
+ }
+
+ Events.Reset() ;
+ EventDetails.Reset() ;
+ LogInterface->Close() ;
+ delete ServiceHandler ;
+ a.ResetAndDestroy() ;
+ a.Close() ;
+
+ if(totalCnt > 0)
+ {
+ _LIT(KLog , "Total count is still greater than zero") ;
+ iLog->Log(KLog) ;
+ User :: Leave (KErrGeneral) ;
+ }
+
+
+
+
+
+ LogInterface->Close() ;
+ delete ServiceHandler ;
+ a.ResetAndDestroy() ;
+ a.Close() ;
+
+ }
+