diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/logcli.h --- a/epoc32/include/logcli.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/logcli.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,321 @@ -logcli.h +// 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.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 +//********************************** + +class CLogEventType : public CBase +/** 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 +*/ + { +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 +//********************************** + +class TLogConfig +/** Encapsulates Log Engine configuration data. + +@see CLogClient::GetConfig() +@see CLogClient::ChangeConfig() +@publishedAll +@released +*/ + { +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 +//********************************** + +class CLogFilter : public CBase +/** 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 +*/ + { +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; + // +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; + }; + +class CLogFilterList : public CArrayPtrFlat +/** 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 +*/ + { +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; + +class CLogClient : public CLogBase +/** 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 +*/ + { +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 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