--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/msgsrvnstore/server/inc/MSVLOPS.H Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,256 @@
+// Copyright (c) 1998-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:
+//
+
+#if !defined(__MSVLOPS_H__)
+#define __MSVLOPS_H__
+
+#if !defined(__E32BASE_H__)
+#include <e32base.h>
+#endif
+
+#if !defined(__MSVOP_H__)
+#include "msvop.h"
+#endif
+
+
+class CMsvCopy;
+class CMsvDelete;
+class CMsvMove;
+
+//**********************************
+// CMsvLocalOperation
+//**********************************
+//
+// Base class for all local operations
+//
+
+class CMsvLocalOperation : public CMsvServerOperation
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ CMsvLocalOperation(const RMessage2& aMessage, TMsvOp aId, CMsvServer& aMsvServer);
+ //
+ const TDesC8& Progress();
+ //
+ TInt SystemProgress(TMsvSystemProgress& aSysProgress);
+protected:
+ CMsvServer& iMsvServer;
+ TPckgBuf<TMsvLocalOperationProgress> iProgress;
+ };
+
+
+
+//**********************************
+// CMsvLocalCopyOperation
+//**********************************
+//
+// Operation used to control server side local copy
+//
+
+class CMsvLocalCopyOperation : public CMsvLocalOperation
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ CMsvLocalCopyOperation(const RMessage2& aMessage, TMsvOp aId, CMsvEntrySelection* aSelection, TMsvId aTarget, CMsvServer& aMsvServer);
+ ~CMsvLocalCopyOperation();
+ //
+ void StartL();
+ //
+private:
+ TInt CopyNextEntry();
+ void Completed();
+ // from CActive
+ void DoCancel();
+ void RunL();
+ //
+private:
+ CMsvCopy* iCopy;
+ CMsvEntrySelection* iOrigEntries;
+ CMsvEntrySelection* iNewEntries;
+ TInt iIndex;
+ TMsvId iTarget;
+ TBool iDescendentCopying;
+ TMsvId iDescendentId;
+ };
+
+
+//**********************************
+// CMsvLocalMoveOperation
+//**********************************
+//
+// Operation used to control server side local move
+//
+
+class CMsvLocalMoveOperation : public CMsvLocalOperation
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ CMsvLocalMoveOperation(const RMessage2& aMessage, TMsvOp aId, CMsvEntrySelection* aSelection, TMsvId aTarget, CMsvServer& aMsvServer);
+ ~CMsvLocalMoveOperation();
+ //
+ void StartL();
+ //
+private:
+ void DoCancel();
+ void RunL();
+ void Completed();
+ TInt MoveNextEntry();
+ void StartFailed(TInt aError);
+ //
+private:
+ TMsvId iTarget;
+ TMsvId iParent;
+ CMsvEntrySelection* iOrigEntries;
+ CMsvMove* iMove;
+ TMsvId iNextEntry;
+ };
+
+
+//**********************************
+// CMsvLocalDeleteOperation
+//**********************************
+//
+// Operation used to control server side local delete
+//
+
+class CMsvLocalDeleteOperation : public CMsvLocalOperation
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ CMsvLocalDeleteOperation(const RMessage2& aMessage, TMsvOp aId, CMsvEntrySelection* aSelection, CMsvServer& aMsvServer);
+ ~CMsvLocalDeleteOperation();
+ //
+ void StartL();
+ //
+private:
+ void DoCancel();
+ void RunL();
+ void Completed();
+ void DoRunL();
+ void PartialCompletionNotificationL();
+ //
+private:
+ CMsvEntrySelection* iSelection;
+ CMsvEntrySelection* iMovedEntries;
+ CMsvEntrySelection* iDeletedEntries;
+ CMsvEntrySelection* iWorkSelection1;
+ CMsvEntrySelection* iWorkSelection2;
+ CMsvDelete* iDelete;
+ TMsvId iParent;
+ TInt iIndex;
+ };
+
+
+//**********************************
+// CMsvLocalChangeOperation
+//**********************************
+//
+// Operation used to control server side local change
+//
+
+class CMsvLocalChangeOperation : public CMsvLocalOperation
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ CMsvLocalChangeOperation(const RMessage2& aMessage, TMsvOp aId, const TMsvEntry& aEntry, CMsvServer& aMsvServer);
+ ~CMsvLocalChangeOperation();
+ //
+ void StartL(TSecureId aOwnerId, TBool aForcedUpdate);
+ //
+private:
+ void DoCancel();
+ void RunL();
+ void Completed();
+ //
+private:
+ const TMsvEntry& iEntry;
+ CMsvEntrySelection* iWorkSelection1;
+ CMsvEntrySelection* iWorkSelection2;
+ CMsvDelete* iDelete;
+ TMsvId iId;
+ TMsvId iParent;
+ };
+
+//**********************************
+// CMsvLocalCreateOperation
+//**********************************
+//
+// Operation used to control server side local create
+//
+
+class CMsvLocalCreateOperation : public CMsvLocalOperation
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ CMsvLocalCreateOperation(const RMessage2& aMessage, TMsvOp aId, const TMsvEntry& aEntry, CMsvServer& aMsvServer);
+ ~CMsvLocalCreateOperation();
+ //
+ void Start(TSecureId aOwnerId);
+ //
+protected:
+ void DoCancel();
+ void RunL();
+ //
+private:
+ const TMsvEntry& iEntry;
+ };
+
+//**********************************
+// CMsvChangeDriveOperation
+//**********************************
+class CMsvChangeDriveOperation : public CMsvServerOperation
+/**
+@internalComponent
+@released
+*/
+ {
+public:
+ CMsvChangeDriveOperation(const RMessage2& aMessage, TMsvOp aId, TInt aDrive, CMsvServer& aServer);
+ ~CMsvChangeDriveOperation();
+ //
+ const TDesC8& Progress();
+ TInt Start();
+ //
+private:
+ void DoCancel();
+ void RunL();
+ void Completed();
+ //
+private:
+ TPckgBuf<TMsvIndexLoadProgress> iProgress;
+ TInt iDrive;
+ CMsvServer& iServer;
+ };
+#endif
+
+