--- /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 <f32file.h>
+#include <d32dbms.h>
+#include <logwrap.h>
+//
+//#include <logserv.rsg>
+
+// 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<const CLogFilter>.
+
+@see CLogFilter
+@see CLogViewEvent
+@see CLogViewRecent
+@publishedAll
+@released
+*/
+class CLogFilterList : public CArrayPtrFlat<const CLogFilter>
+ {
+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 <logcli.inl>
+
+#endif