os/persistentdata/loggingservices/eventlogger/LogServ/inc/LogServViewChangeManager.h
First public contribution.
1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #ifndef __LOGSERVVIEWCHANGEMANAGER_H__
17 #define __LOGSERVVIEWCHANGEMANAGER_H__
20 #include "LogChangeDefinition.h"
21 #include "LogCliServShared.h"
22 #include "LogServBackupObserver.h"
23 #include "LogServDatabaseChangeObserver.h"
26 class MLogServDatabaseChangeInterface;
29 /////////////////////////////////////////////////////////////////////////////////////////
30 // -----> CLogServViewBase (header)
31 /////////////////////////////////////////////////////////////////////////////////////////
35 class CLogServViewChangeManager : public CBase
38 static CLogServViewChangeManager* NewL(MLogServDatabaseChangeInterface& aChangeInterface);
39 ~CLogServViewChangeManager();
42 CLogServViewChangeManager(MLogServDatabaseChangeInterface& aChangeInterface);
45 public: // CHANGE TRANSACTION
50 void ChangeTransactionPrepare();
55 void ChangeTransactionSubmitL(TLogId aId, TLogDatabaseChangeType aType, TInt aViewIndex);
60 void ChangeTransactionCommitL();
63 public: // CHANGE DELIVERY
66 * Deliver the next available batch of changes. Panics if there
69 void DeliverChangesL(const RMessage2& aMessage);
71 public: // CHANGE REQUEST MANAGEMENT
74 * The client has requested change notifications
76 void RequestChangeNotifications(const RMessage2& aMessage);
79 * The client has cancelled a previous change notification request
81 void RequestChangeNotificationsCancel();
85 void CompleteClientChangeMessage(TInt aCompletionCode);
88 MLogServDatabaseChangeInterface& iChangeInterface;
91 * Completed when the view contents change
93 RMessagePtr2 iClientSideChangeMessage;
96 * A buffer which contain the list of changed items
97 * for the current change transaction
99 CLogChangeDefinition* iTransientChangeDefinition;
102 * All the change 'packages' which are outstanding for this client
104 RPointerArray<CBufBase> iPendingChanges;