--- a/epoc32/include/msvipc.h Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,501 +0,0 @@
-// 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 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:
-//
-
-#if !defined(__MSVIPC_H__)
-#define __MSVIPC_H__
-
-#if !defined(__E32BASE_H__)
-#include <e32base.h>
-#endif
-
-#if !defined(__MSVSTD_H__)
-#include <msvstd.h>
-#endif
-
-
-//
-const TInt KMsvNullOperation=0;
-const TInt KMsvFirstOperation=1;
-
-//
-const TInt KMsvSessionBufferLength=0x1000;
-const TInt KMsvProgressBufferLength=256;
-
-
-// ***** NOTE!!!!! TMsvPackedChangeNotification::UnpackL() MUST be ****
-// ***** updated when adding new types *****
-/**
-@internalComponent
-@released
-*/
-enum TMsvServerChangeNotificationType
- {
- EMsvNullNotification=-1,
- EMsvEntriesNoChange=0,
- EMsvEntriesCreated=1,
- EMsvEntriesChanged=2,
- EMsvEntriesDeleted=3,
- EMsvEntriesMoved=4,
- EMsvMtmGroupInstalled=5,
- EMsvMtmGroupDeInstalled=6,
- EMsvStoreDeleted=7,
- EMsvCloseSession=8,
- EMsvIndexLoaded=9,
- EMsvIndexFailedToLoad=10,
- EMsvCorruptedIndexRebuilt=11,
- EMsvMediaChanged=12, // Note: I assume the following four follow each other in order
- EMsvMediaUnavailable=13,
- EMsvMediaAvailable=14,
- EMsvMediaIncorrect=15,
- EMsvCorruptedIndexRebuilding=16
- };
-
-
-//**********************************
-// TMsvPackedEntry
-//**********************************
-//
-// Packs a TMsvEntry and the two associated descriptors into a buffer for
-// sending across IPC. Also unpacks the data into a TMsvEntry and two heap
-// descriptors
-//
-//
-class TMsvEntry;
-
-class TMsvPackedEntry
-/**
-@internalComponent
-@released
-*/
- {
-public:
- IMPORT_C TMsvPackedEntry(HBufC8*& aBuffer);
- IMPORT_C TInt PackEntry(const TMsvEntry& aEntry);
- IMPORT_C void UnpackEntry(TMsvEntry& aEntry);
-private:
- HBufC8*& iBuffer;
- };
-
-
-//**********************************
-// TMsvPackedEntryArray
-//**********************************
-//
-// Packs 1+ TMsvEntry's and the associated descriptors into a buffer for
-// sending across IPC. Also unpacks the data into a TMsvEntry and two heap
-// descriptors using indexed access
-//
-//
-
-class TMsvPackedEntryArray
-/**
-@internalComponent
-@released
-*/
- {
-public:
- IMPORT_C TMsvPackedEntryArray(HBufC8*& aBuffer, TInt aCount=0);
- IMPORT_C TInt PackEntry(const TMsvEntry& aEntry);
- IMPORT_C TInt UnpackEntry(TInt aEntryIndex, TMsvEntry& aEntry);
- IMPORT_C void Reset();
-private:
- TInt FindEntryInArray(TInt aIndex);
-private:
- TInt iIndex;
- TInt iCount;
- const TUint8* iPos;
- HBufC8*& iBuffer;
- };
-
-
-//**********************************
-// TMsvChildrenDetails
-//**********************************
-//
-// Contains the information about the number of children of an entry and how many
-// have been sent in the main buffer
-//
-
-class TMsvChildrenDetails
-/**
-@internalComponent
-@released
-*/
- {
-public:
- IMPORT_C TMsvChildrenDetails();
-public:
- TMsvId iParentId;
- TInt iTotalNumberChildren;
- TInt iNumberChildrenInArray;
- TInt iLastEntryInArray;
- };
-
-
-//**********************************
-// TMsvLocalOperationProgress
-//**********************************
-//
-// Contains the information about a local operation
-//
-
-class TMsvLocalOperationProgress
-/** Encapsulates progress information returned by a local operation. A local operation
-is a CMsvOperation-derived object returned by a function that affects only
-local entries. For example, such a function would be a CMsvEntry::ChangeL()
-call on a local entry. You can check if the operation is local from CMsvOperation::Mtm():
-a local operation returns a value of KUidMsvLocalServiceMtm.
-
-Progress information is obtained, in a packaged format, by calling CMsvOperation::ProgressL().
-Understanding the TMsvLocalOperationProgress structure enables an application
-to use that information for a local operation.
-@publishedAll
-@released
-*/
- {
-public:
-/** Defines the possible values for the type of operation progress report.
-@publishedAll
-@released
-*/
- enum TLocalOperation
- {
- /** Default value for new TMsvLocalOperationProgress */
- ELocalNone=0,
- /** Move operation */
- ELocalMove,
- /** Delete operation */
- ELocalDelete,
- /** Copy operation */
- ELocalCopy,
- /** Create operation */
- ELocalNew,
- /** Change operation */
- ELocalChanged
- };
-public:
- IMPORT_C TMsvLocalOperationProgress();
-public:
- /** The type of operation on which the progress is reporting */
- TLocalOperation iType;
- /** The number of entries on which the operation was or will be attempted */
- TInt iTotalNumberOfEntries;
- /** The number of entries on which the operation has been successful */
- TInt iNumberCompleted;
- /** The number of entries on which the operation has failed */
- TInt iNumberFailed;
- /** The number of entries on which the operation has yet to be attempted */
- TInt iNumberRemaining;
- /** The error code for the latest failed operation */
- TInt iError;
- /** This contains different information for different operation types:
-
- 1. copying a single entry: ID of the new entry
-
- 2. moving an entry: ID of the entry moved
-
- 3. copying or moving multiple entries: ID of the first entry in the selection */
- TMsvId iId;
- };
-
-//**********************************
-// TMsvServerOperationProgress
-//**********************************
-/** Encapsulates progress information returned by a non-MTM specific Message Server
-operation.
-
-You can check if an operation has this type of progress information by calling
-CMsvOperation::Mtm(): a suitable operation returns a value of KUidMsvServerMtm.
-
-Progress information is obtained, in a packaged format, by calling CMsvOperation::ProgressL().
-Understanding the TMsvServerOperationProgress class enables an application
-to use that information for a Message Server operation.
-
-@see TMsvLocalOperationProgress
-@see CMsvSession::CopyStoreL()
-@see CMsvSession::DeleteStoreL()
-@publishedAll
-@released
-*/
-
-class TMsvServerOperationProgress
- {
-public:
-
- enum TMsvServerOperationType
- {
- /** No operation in progress. */
- EMsvNoOperation = 0,
- /** Change drive operation in progress.
-
- @see CMsvSession::ChangeDriveL() */
- EMsvChangeDriveOperation
-
- ,
- /** Copy Store operation in progress.
- @see CMsvSession::CopyStoreL() */
- EMsvCopyOperation,
-
- /** Delete Store operation in progress.
- @see CMsvSession::DeleteStoreL() */
- EMsvDeleteOperation
-
-
- };
- //
-public:
- IMPORT_C TMsvServerOperationProgress();
- TMsvServerOperationProgress(TMsvServerOperationType aType);
- //
-public:
- /** The type of operation in progress. */
- TMsvServerOperationType iOperationType;
- };
-
-
-//**********************************
-// TMsvIndexProgress
-//**********************************
-
-class TMsvIndexProgress
-/** Provides details of index loading progress.
-
-@see TMsvIndexLoadProgress
-@publishedAll
-@released
-*/
- {
-public:
- IMPORT_C TMsvIndexProgress();
- //
-public:
- /** Total number of entries in the index. */
- TInt iTotal;
- /** Number of entries created so far. */
- TInt iCompleted;
- /** Number of entries remaining. */
- TInt iRemaining;
- /** ID of entry last created. */
- TMsvId iId;
- };
-
-
-//**********************************
-// TMsvIndexLoadProgress
-//**********************************
-
-class TMsvIndexLoadProgress : public TMsvServerOperationProgress
-/** Progress information for an operation controlling the Message Server loading
-its index.
-
-Such an operation can occur when the Message Server changes drive.
-
-@see CMsvOperation
-@see CMsvSession::ChangeDriveL()
-@publishedAll
-@released
-*/
- {
-public:
- /** States for the index loading process.
-@publishedAll
-@released
-*/
- enum TIndexState
- {
- /** Index loading has not begun. */
- EIndexNotLoaded = 0,
- /** Index loading is in progress. */
- EIndexLoading,
- /** Index is being built. */
- EIndexRebuilding,
- /** Index loading is complete. */
- EIndexComplete};
- //
-public:
- IMPORT_C TMsvIndexLoadProgress();
- //
-public:
- /** Stores any errors that prevented the index being loaded. */
- TInt iError;
- /** Current state of the index loading process. */
- TIndexState iState;
- /** Details of the index loading progress. */
- TMsvIndexProgress iIndex;
- };
-
-
-
-//**********************************
-// TMsvCopyProgress
-//**********************************
-
-/** Progress information for the copy operation.
-
-@see CMsvOperation
-@see CMsvSession::CopyStoreL()
-@publishedAll
-@released
-*/
-class TMsvCopyProgress : public TMsvServerOperationProgress
- {
-public:
-/** States for the copy operation.
-@publishedAll
-@released
-*/
- enum TCopyState
- {
- /** Operation not yet started */
- ENotYetStarted = 0,
- /** Mail Store is being locked */
- ELock,
- /** Initialising Copy operation */
- EInitCopy,
- /** Mail Store is being copied */
- ECopyStore,
- /** Mail Store is being unlocked. */
- EUnlock,
- /** Operation completed */
- ECompleted
- };
-
- /** Stores any errors that the operation encountered. */
- TInt iError;
- TInt iTotal; // Total number of items to be copied
- TInt iCurrent; // Current item number being copied
- TCopyState iState;
-
-public:
- IMPORT_C TMsvCopyProgress();
- };
-
-
-//**********************************
-// TMsvDeleteProgress
-//**********************************
-
-/** Progress information for the delete operation.
-
-@see CMsvOperation
-@see CMsvSession::DeleteStoreL()
-@publishedAll
-@released
-*/
-class TMsvDeleteProgress : public TMsvServerOperationProgress
- {
-public:
-/** States for the delete operation.
-@publishedAll
-@released
-*/
- enum TDeleteState
- {
- /** Operation not yet started */
- ENotYetStarted = 0,
- /** Mail Store is being deleted */
- EDeleteStore,
- /** Operation is complete */
- ECompleted
- };
-
- /** Stores any errors that the operation encountered. */
- TInt iError;
- TDeleteState iState;
-
-public:
- IMPORT_C TMsvDeleteProgress();
- };
-
-
-
-//**********************************
-// TMsvPackedOperation
-//**********************************
-//
-// Packs an operation, the selection, and some associated parameters (TInt) into the
-// IPC buffer
-//
-//
-
-class TMsvPackedOperation
-/**
-@internalComponent
-@released
-*/
- {
-public:
- IMPORT_C TMsvPackedOperation(HBufC8*& aBuffer);
- IMPORT_C TInt Pack(const CMsvEntrySelection& aSelection, TInt aParameter1=0, TInt aParameter2=0);
- IMPORT_C void UnpackL(CMsvEntrySelection& aSelection, TInt& aParameter1, TInt& aParameter2);
-private:
- HBufC8*& iBuffer;
- };
-
-
-//**********************************
-// TMsvPackedChangeNotification
-//**********************************
-//
-// Packs the CMsvEntrySelection of index entries that have been changed, and also
-// the integer describing the type of change. There is a limit of KMsvPackedChangeLimit
-// top the number of entry ids that can be sent at one time
-//
-//
-
-typedef TBuf8<128> TMsvNotifBuffer;
-
-class TMsvPackedChangeNotification
-/**
-@internalComponent
-@released
-*/
- {
-public:
- enum { KMsvChangeNotificationNumberOfTInts=4,
- KMsvPackedChangeLimit=28, // 32-KMsvChangeNotificationNumberOfTInts
- };
-public:
- IMPORT_C TMsvPackedChangeNotification(TMsvNotifBuffer& aBuffer);
- inline void Pack(TMsvServerChangeNotificationType aChangeType, const CMsvEntrySelection& aSelection, TInt aParameter1, TInt aParameter2);
- IMPORT_C void Pack(TMsvServerChangeNotificationType aChangeType, const CMsvEntrySelection& aSelection, TInt aParameter1, TInt aParameter2, TInt aStartIndex, TInt aFinishIndex);
- IMPORT_C void Pack(TMsvServerChangeNotificationType aChangeType, TMsvId aId, TInt aParameter1, TInt aParameter2);
- IMPORT_C void UnpackL(TMsvServerChangeNotificationType& aChangeType, CMsvEntrySelection& aSelection, TInt& aParameter1, TInt& aParameter2);
-private:
- TMsvNotifBuffer& iBuffer;
- };
-
-//**********************************
-// TMsvPackedEntryFilter
-//**********************************
-
-class TMsvPackedEntryFilter
-/**
-@internalComponent
-@released
-*/
- {
-public:
- TMsvPackedEntryFilter(HBufC8*& aBuffer);
- TInt PackFilter(const CMsvEntryFilter& aFilter);
- void UnpackFilter(CMsvEntryFilter& aFilter);
-private:
- HBufC8*& iBuffer;
- };
-
-
-#include <msvipc.inl>
-
-#endif