williamr@2: // Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@2: */ williamr@2: williamr@2: #if !defined (__SMSULOG_H__) williamr@2: #define __SMSULOG_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include "smsuact.h" williamr@4: #include williamr@2: williamr@2: class RFs; williamr@2: class CSmsMessage; williamr@2: williamr@2: williamr@2: /** williamr@2: * Logs SMS-related events. williamr@2: * williamr@2: * The class uses the log engine functionality provided by the Log Engine (CLogWrapper williamr@2: * etc.). williamr@2: * williamr@2: * @publishedAll williamr@2: * @released williamr@2: */ williamr@2: class CSmsEventLogger : public CSmsuActiveBase williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CSmsEventLogger* NewL(RFs& aFs,TInt aPriority=CActive::EPriorityStandard); williamr@2: IMPORT_C ~CSmsEventLogger(); williamr@2: williamr@2: IMPORT_C void AddEvent(TRequestStatus& aStatus,const CSmsMessage& aSmsMessage,const TLogSmsPduData& aData,TInt* aStatusId=NULL); williamr@2: IMPORT_C void GetEvent(TRequestStatus& aStatus,TLogId aId); williamr@2: IMPORT_C void ChangeEvent(TRequestStatus& aStatus,const CSmsMessage& aSmsMessage,const TLogSmsPduData& aData,TInt* aStatusId=NULL); williamr@4: IMPORT_C void ChangeEvent(TRequestStatus& aStatus,const CSmsMessage& aSmsMessage, const TTime* aTime, const TLogSmsPduData& aData, TInt* aStatusId=NULL); williamr@2: IMPORT_C void DeleteEvent(TRequestStatus& aStatus); williamr@2: williamr@2: inline TBool ClientAvailable() const; williamr@2: inline TInt GetString(TDes& aString,TInt aId) const; williamr@2: inline CLogEvent& Event(); williamr@2: inline const CLogEvent& Event() const; williamr@2: inline const TLogSmsPduData& SmsPDUData() const; williamr@2: williamr@2: protected: williamr@2: williamr@2: void DoCancel(); williamr@2: williamr@2: private: williamr@2: CSmsEventLogger(TInt aPriority); williamr@2: void ConstructL(RFs& aFs); williamr@2: void DoRunL(); williamr@2: void DoAddEventL(const CSmsMessage& aSmsMessage,TInt* aStatusId); williamr@2: void SetDataL(const CSmsMessage& aSmsMessage,TInt* aStatusId, const TTime* aDischargeTime); williamr@2: void DoComplete(TInt& aStatus); williamr@2: inline void GetStringL(TDes& aString,TInt aId) const; williamr@2: williamr@2: private: williamr@2: enum TSmsEventLoggerState williamr@2: { williamr@2: ESmsEventLoggerIdle, williamr@2: ESmsEventLoggerGettingEvent, williamr@2: ESmsEventLoggerAddingEvent, williamr@2: ESmsEventLoggerChangingEvent, williamr@2: ESmsEventLoggerDeletingEvent williamr@2: }; williamr@2: private: williamr@2: TSmsEventLoggerState iState; williamr@2: williamr@2: CLogWrapper* iLogWrapper; williamr@2: CLogEvent* iLogEvent; williamr@2: williamr@2: TLogSmsPduData iSmsPDUData; williamr@2: }; williamr@2: williamr@2: #include "smsulog.inl" williamr@2: williamr@2: #endif