/** Changes the details of an existing event. Use GetEvent() to specify the event. @param aStatus Asynchronous status word to signal when the operation is complete @param aSmsMessage The SMS message that the event concerns @param aTime SMS delivery time @param aData SMS PDU information for the event @param aStatusId Optional string to include in the log message, specified by resource ID @capability WriteUserData */ EXPORT_C void CSmsEventLogger::ChangeEvent(TRequestStatus& aStatus,const CSmsMessage& aSmsMessage, const TTime* aTime, const TLogSmsPduData& aData, TInt* aStatusId) { OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_BORDER, CSMSEVENTLOGGER_CHANGEEVENT_1, "CSmsEventLogger::ChangeEvent"); __ASSERT_DEBUG(iState==ESmsEventLoggerIdle,SmsuPanic(KSmsuPanicUnexpectedState)); __ASSERT_DEBUG(aSmsMessage.LogServerId()==iLogEvent->Id(),SmsuPanic(KSmsuPanicWrongLogServerId)); __ASSERT_DEBUG(iSmsPDUData.iType==aSmsMessage.Type(),SmsuPanic(ESmsuUnexpectedSmsPDUType)); iState=ESmsEventLoggerChangingEvent; Queue(aStatus); iSmsPDUData=aData; iSmsPDUData.iType=aSmsMessage.Type(); TRAPD(ret,SetDataL(aSmsMessage,aStatusId, aTime)); if (ret!=KErrNone) { Complete(ret); } else { iLogWrapper->Log().ChangeEvent(*iLogEvent,iStatus); SetActive(); } }