epoc32/include/logcli.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
--- 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 <f32file.h>
+#include <d32dbms.h>
+#include <logwrap.h>
+//
+//#include <logserv.rsg>
+
+// 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<const CLogFilter>
+/** 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
+*/
+	{
+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 <logcli.inl>
+
+#endif