sl@0: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: // All rights reserved.
sl@0: // This component and the accompanying materials are made available
sl@0: // under the terms of "Eclipse Public License v1.0"
sl@0: // which accompanies this distribution, and is available
sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: //
sl@0: // Initial Contributors:
sl@0: // Nokia Corporation - initial contribution.
sl@0: //
sl@0: // Contributors:
sl@0: //
sl@0: // Description:
sl@0: //
sl@0: 
sl@0: #ifndef __LOGVIEWCHANGEOBSERVER_H__
sl@0: #define __LOGVIEWCHANGEOBSERVER_H__
sl@0: 
sl@0: // System includes
sl@0: #include <logwrap.h>
sl@0: 
sl@0: /**
sl@0: This class allows a client of the log engine to observe specific change events within
sl@0: a given view.
sl@0: @publishedAll 
sl@0: @released
sl@0: */
sl@0: class MLogViewChangeObserver
sl@0: 	{
sl@0: public:
sl@0: 
sl@0: 	/**Handle a change corresponding to a view addition
sl@0: 	
sl@0: 	This method is called when a log event is added to a view. The event maybe 
sl@0: 	recently added,	or have existed for some time but only now meet the 
sl@0: 	criteria of this view (i.e satisfy the filter) due to some other change.
sl@0: 	
sl@0: 	@param aId The id of the log event which has been added to the view.
sl@0: 	@param aViewIndex The position within the view at which the event has been 
sl@0: 	added.
sl@0: 	@param aChangeIndex	In a series of changes, this is the index of the 
sl@0: 	currently processing change. The change index will be greater than (or 
sl@0: 	equal to) 0, and less than the total change count.
sl@0: 	@param aTotalChangeCount This is the total count of all changes which will 
sl@0: 	be processed in this batch.
sl@0: 	 */
sl@0: 	virtual void HandleLogViewChangeEventAddedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount) = 0;
sl@0: 
sl@0: 	/** Handle a change corresponding to a view change
sl@0: 	
sl@0: 	This method is called when a log event changes within a view.
sl@0: 	
sl@0: 	@param aId The id of the log event which has changed within the view.
sl@0: 	@param aViewIndex The position within the view where the change occurred.
sl@0: 	@param aChangeIndex	In a series of changes, this is the index of the 
sl@0: 	currently processing change. The change index will be greater than (or 
sl@0: 	equal to) 0, and less than the total change count.
sl@0: 	@param aTotalChangeCount This is the total count of all changes which will 
sl@0: 	be processed in this batch.
sl@0: 	 */
sl@0: 	virtual void HandleLogViewChangeEventChangedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount) = 0;
sl@0: 
sl@0: 	/** Handle a change corresponding to a view deletion
sl@0: 	
sl@0: 	This method is called when a log event is removed from a view.
sl@0: 	
sl@0: 	@param aId The id of the log event which has been removed from the view
sl@0: 	@param aViewIndex The position within the view which the event previously 
sl@0: 	held.
sl@0: 	@param aChangeIndex In a series of changes, this is the index of the 
sl@0: 	currently processing change. The change index will be greater than (or 
sl@0: 	equal to) 0, and less than the total change count.
sl@0: 	@param aTotalChangeCount This is the total count of all changes which 
sl@0: 	will be processed in this batch
sl@0: 	 */
sl@0: 	virtual void HandleLogViewChangeEventDeletedL(TLogId aId, TInt aViewIndex, TInt aChangeIndex, TInt aTotalChangeCount) = 0;
sl@0: 	};
sl@0: 
sl@0: 
sl@0: #endif