diff -r 000000000000 -r 08ec8eefde2f loggingservices/eventlogger/LogCli/inc/LOGCLI.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loggingservices/eventlogger/LogCli/inc/LOGCLI.H Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,329 @@ +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "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: +// + +#ifndef __LOGCLI_H__ +#define __LOGCLI_H__ + +// System includes +#include +#include +#include +// +//#include + +// Classes referenced +class CLogClientObserver; +class MLogClientChangeObserver; + + +//********************************** +// CLogEventType +//********************************** + +/** Encapsulates the details of an event type. + +An event type is used to associate an event with a user-readable description +and other configuration information related to the event. + +Event types are identified by UID. + +@see CLogEvent::EventType() +@see CLogEvent::SetEventType() +@publishedAll +@released +*/ +class CLogEventType : public CBase + { +public: + IMPORT_C static CLogEventType* NewL(); + IMPORT_C ~CLogEventType(); + // +public: + inline TUid Uid() const; + inline void SetUid(TUid aUid); + // + inline const TDesC& Description() const; + inline void SetDescription(const TDesC& aDescription); + // + inline TBool LoggingEnabled() const; + inline void SetLoggingEnabled(TBool aEnable); + // + IMPORT_C void Copy(const CLogEventType& aType); + + void InternalizeL(RReadStream& aStream); + void ExternalizeL(RWriteStream& aStream) const; + // +private: + CLogEventType(); + void ConstructL(); + void InternalizeBufL(RReadStream& aStream, HBufC*& aDes); + // +private: + TUid iUid; + HBufC* iDescription; + TBool iLoggingEnabled; + }; + +//********************************** +// TLogConfig +//********************************** + +/** Encapsulates Log Engine configuration data. + +@see CLogClient::GetConfig() +@see CLogClient::ChangeConfig() +@publishedAll +@released +*/ +class TLogConfig + { +public: + IMPORT_C TLogConfig(); + // + void InternalizeL(RReadStream& aStream); + void ExternalizeL(RWriteStream& aStream) const; + // +public: + /** The maximum number of events that the event log holds. + + If the number of event log entries exceeds this value, the oldest event is + deleted from the log. */ + TLogSize iMaxLogSize; + + /** The maximum number of events that a recent event list holds. + + If the number of recent event list entries exceeds this value, the oldest + event is removed from the list. Note, however, that the event is not deleted + from the event log. */ + TLogRecentSize iMaxRecentLogSize; + + /** The maximum age, in seconds, for which events can be retained in the event log. + + Events older than this are automatically deleted from the event log. + + Purging of events by age can be disabled by setting this value to 0. */ + TLogAge iMaxEventAge; + }; + +//********************************** +// CLogFilter +//********************************** + +/** Specifies the conditions that events must satisfy to appear in a view. + +In general, a filter is used to construct the WHERE clause of an SQL +statement based on the content of the filter's fields. The filter's fields +correspond to the event properties in a log event detail object, i.e. an instance +of the CLogEvent class. + +Where a filter uses time to extract one or more events from the log, this must be +specified as UTC rather than local time. + +@see CLogEvent +@see CLogViewEvent +@see CLogViewRecent +@see CLogViewDuplicate +@publishedAll +@released +*/ +class CLogFilter : public CBase + { +public: + IMPORT_C static CLogFilter* NewL(); + IMPORT_C ~CLogFilter(); + // +public: + inline TUid EventType() const; + inline void SetEventType(TUid aType); + // + inline const TDesC& RemoteParty() const; + inline void SetRemoteParty(const TDesC& aRemote); + // + inline const TDesC& Direction() const; + inline void SetDirection(const TDesC& aDirection); + // + inline TLogDurationType DurationType() const; + inline void SetDurationType(TLogDurationType aType); + // + inline const TDesC& Status() const; + inline void SetStatus(const TDesC& aStatus); + // + inline TLogContactItemId Contact() const; + inline void SetContact(TLogContactItemId aContact); + // + inline const TDesC& Number() const; + inline void SetNumber(const TDesC& aNumber); + // + inline TLogFlags Flags() const; + inline void SetFlags(TLogFlags aFlags); + inline void ClearFlags(TLogFlags aFlags); + // + inline TUint32 NullFields() const; + inline void SetNullFields(TUint32 aFields); + // + inline const TTime& StartTime() const; + inline void SetStartTime(const TTime& aStartTime); + // + inline const TTime& EndTime() const; + inline void SetEndTime(const TTime& aEndTime); + // + IMPORT_C void Copy(const CLogFilter& aFilter); + void InternalizeL(RReadStream& aStream); + void ExternalizeL(RWriteStream& aStream) const; + // + IMPORT_C void SetSimId(TSimId aSimId); + IMPORT_C TSimId SimId() const; + // +private: + CLogFilter(); + void ConstructL(); + void InternalizeBufL(RReadStream& aStream, HBufC*& aDes); + // +private: + TUid iEventType; + HBufC* iRemoteParty; + HBufC* iDirection; + TLogDurationType iDurationType; + HBufC* iStatus; + TLogContactItemId iContact; + HBufC* iNumber; + TLogFlags iFlags; + TUint32 iNullFields; + TTime iStartTime; + TTime iEndTime; +#ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM + TSimId iSimId; +#endif + }; + +/** A set of event view filters. + +Specifically, this is an array of pointers to const CLogFilter objects and +is derived from CArrayPtrFlat. + +@see CLogFilter +@see CLogViewEvent +@see CLogViewRecent +@publishedAll +@released +*/ +class CLogFilterList : public CArrayPtrFlat + { +public: + IMPORT_C CLogFilterList(); + IMPORT_C CLogFilterList* CopyL() const; + IMPORT_C CLogFilterList* CopyLC() const; + void InternalizeL(RReadStream& aStream); + void ExternalizeL(RWriteStream& aStream) const; + }; + +//********************************** +// CLogClient +//********************************** + +class CLogView; +class RLogSession; +class CLogPackage; +class CLogAddEventClientOp; +class CLogChangeEventClientOp; +class CLogGetEventClientOp; +class CLogDeleteEventClientOp; +class CLogAddTypeClientOp; +class CLogChangeTypeClientOp; +class CLogGetTypeClientOp; +class CLogDeleteTypeClientOp; +class CLogGetConfigClientOp; +class CLogChangeConfigClientOp; +class CLogClearLogClientOp; +class CLogClearRecentClientOp; + +/** Log Engine implementation. + +It creates a shared session on the log database and allows log viewers to +retrieve events from the log. + +The class also provides log administration functions. + +Wherever time values are used by this class, they must be specified as UTC rather +than local time. + +@see CLogWrapper +@publishedAll +@released +*/ +class CLogClient : public CLogBase + { +public: + IMPORT_C static CLogClient* NewL(RFs& aFs, TInt aPriority = CActive::EPriorityStandard); + IMPORT_C ~CLogClient(); + // +public: + IMPORT_C void AddEvent(CLogEvent& aEvent, TRequestStatus& aStatus); + IMPORT_C void GetEvent(CLogEvent& aEvent, TRequestStatus& aStatus); + IMPORT_C void ChangeEvent(const CLogEvent& aEvent, TRequestStatus& aStatus); + IMPORT_C void DeleteEvent(TLogId aId, TRequestStatus& aStatus); + + IMPORT_C void AddEventType(const CLogEventType& aType, TRequestStatus& aStatus); + IMPORT_C void GetEventType(CLogEventType& aType, TRequestStatus& aStatus); + IMPORT_C void ChangeEventType(const CLogEventType& aType, TRequestStatus& aStatus); + IMPORT_C void DeleteEventType(TUid aId, TRequestStatus& aStatus); + IMPORT_C void GetConfig(TLogConfig& aConfig, TRequestStatus& aStatus); + IMPORT_C void ChangeConfig(const TLogConfig& aConfig, TRequestStatus& aStatus); + IMPORT_C void ClearLog(const TTime& aDate, TRequestStatus& aStatus); + IMPORT_C void ClearLog(TInt aRecentList, TRequestStatus& aStatus); + IMPORT_C void ClearLog(const TTime& aDate, TSimId aSimid, TRequestStatus& aStatus); + IMPORT_C void ClearLog(TInt aRecentList, TSimId aSimid, TRequestStatus& aStatus); + // + IMPORT_C void NotifyChange(TTimeIntervalMicroSeconds32 aDelay, TRequestStatus& aStatus); + IMPORT_C void NotifyChangeCancel(); + // + IMPORT_C void SetGlobalChangeObserverL(MLogClientChangeObserver* aObserver); + // + IMPORT_C TInt GetString(TDes& aString, TInt aId) const; + RLogSession& Session() const; + // +private: + CLogClient(RFs& aFs, TInt aPriority); + void ConstructL(); + void DoGetStringL(TDes& aString, TInt aId) const; + // + void DoRunL(); + void DoCancel(); + // +private: + RLogSession* iSession; + CLogPackage* iPackage; + CLogAddEventClientOp* iAddEvent; + CLogChangeEventClientOp* iChangeEvent; + CLogGetEventClientOp* iGetEvent; + CLogDeleteEventClientOp* iDeleteEvent; + CLogAddTypeClientOp* iAddType; + CLogChangeTypeClientOp* iChangeType; + CLogGetTypeClientOp* iGetType; + CLogDeleteTypeClientOp* iDeleteType; + CLogGetConfigClientOp* iGetConfig; + CLogChangeConfigClientOp* iChangeConfig; + CLogClearLogClientOp* iClearLog; + CLogClearRecentClientOp* iClearRecent; + RFs& iFs; + CLogClientObserver* iChangeObserver; + // +private: + IMPORT_C void CLogBase_Reserved1(); + }; + +#include + +#endif