emailservices/emailstore/message_store/common/inc/MessageStoreClientServer.h
changeset 0 8466d47a6819
child 8 e1b6206813b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailstore/message_store/common/inc/MessageStoreClientServer.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,277 @@
+/*
+* Copyright (c) 2006 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:  Message store client server comunication definitions.
+*
+*/
+
+
+
+#ifndef __MESSAGE_STORE_CLIENT_SERVER_H__
+#define __MESSAGE_STORE_CLIENT_SERVER_H__
+
+// ========
+// INCLUDES
+// ========
+
+#include <e32std.h>
+//<cmail>
+#include "MsgStoreTypes.h"
+#include "MsgStoreAccount.h"
+//</cmail>
+
+// =========
+// CONSTANTS
+// =========
+
+_LIT( KMsgStoreServerName, "MessageStoreServer" );
+
+const TInt KMsgStoreMajorVersion = 0;
+const TInt KMsgStoreMinorVersion = 1;
+const TInt KMsgStoreBuild        = 0;
+
+// =====================
+// FUNCTION DECLARATIONS
+// =====================
+
+// If aParams == NULL then this function does a thread rendezvous to signal the client, otherwise it
+// does a process rendezvous.
+IMPORT_C TInt MessageStoreServerThreadFunction( TAny* aParams );
+
+// ================================================================
+// Definition of acceptable commands that can be sent to the server
+// ================================================================
+enum TMsgStoreMessages
+	{
+    
+    // These commands should be accessible only in debug builds
+    EMsgStoreCmdShutdownServer       = 0,
+    EMsgStoreCmdInjectBackupRestoreEvent, 
+    EMsgStoreCmdInjectPointSecEvent,      
+    EMsgStoreCmdSimulateLowDiskSpace,     
+    EMsgStoreCmdGetEncryptionState,
+    
+    
+	// The following messages do not require any platform security capabilities to use.
+    EMsgStoreCmdAuthenticated        = 100,
+    EMsgStoreCmdClearAuthentication,
+    EMsgStoreCmdChildrenCounts,
+    EMsgStoreCmdTotalCounts,
+    EMsgStoreCmdChildrenIds,
+    EMsgStoreCmdContentLength,
+	EMsgStoreCmdStartObserving,
+	EMsgStoreCmdGetEvents,
+	EMsgStoreCmdStopObserving,	
+	EMsgStoreCmdCancelSearch,
+    EMsgStoreCmdClearSearchResultCache,
+    EMsgStoreCmdGetIteratorGroupCount,
+    EMsgStoreCmdGetIteratorIdsAndFlags,
+    EMsgStoreCmdSortedIndexOf,
+    EMsgStoreCmdGetIteratorIds,
+    EMsgStoreCmdGetIteratorIdsAndGroupCount,
+    EMsgStoreCmdEndSorting,
+
+    // The following messages require ECapabilityReadUserData to use.
+
+    EMsgStoreCmdAuthenticate,
+    EMsgStoreCmdHasPassword,
+	EMsgStoreCmdOpenAccount,
+	EMsgStoreCmdListAccounts,
+    EMsgStoreCmdPropertiesList,
+    EMsgStoreCmdFetchProperties,
+    EMsgStoreCmdFetchContentToBuffer,
+    EMsgStoreCmdFetchContentToFile,
+	EMsgStoreCmdPrepareSearch,
+	EMsgStoreCmdGetMatches,
+    EMsgStoreCmdGetSortedRows,
+    EMsgStoreCmdOpenContentFile,
+    EMsgStoreCmdGetMruAddressList,
+    
+    // The following messages require ECapabilityWriteUserData to use.
+    
+    EMsgStoreCmdEnableEncryption,
+    EMsgStoreCmdDisableEncryption,
+    EMsgStoreCmdSetPassword,
+    EMsgStoreCmdChangePassword,
+    EMsgStoreCmdCreateAccount,
+    EMsgStoreCmdRenameAccount,
+    EMsgStoreCmdDeleteAccount,
+	EMsgStoreCmdCreateContainer,
+	EMsgStoreCmdCommitContainer,
+	EMsgStoreCmdAbandonContainer,
+	EMsgStoreCmdMoveContainer,
+	EMsgStoreCmdCopyContainer,
+    EMsgStoreCmdDeleteContainer,
+    EMsgStoreCmdUpdateProperties,
+    EMsgStoreCmdUpdateProperty,
+    EMsgStoreCmdReplaceContentWithBuffer,
+    EMsgStoreCmdReplaceContentWithFile,
+    EMsgStoreCmdAppendToContent,
+    EMsgStoreCmdPrependToContent,
+    EMsgStoreCmdRemoveContent,
+    EMsgStoreCmdStartSorting,
+    EMsgStoreCmdSetMaxMruAddressCount,
+    EMsgStoreCmdSetMruAddressList,
+    EMsgStoreCmdBeginBatchInsert,
+    EMsgStoreCmdFinishBatchInsert,
+    EMsgStoreCmdWipeEverything
+  	};
+
+const TMsgStoreMessages KMsgStoreCmdAlwaysPass          = EMsgStoreCmdAuthenticated;
+const TMsgStoreMessages KMsgStoreCmdFirstReadUserData   = EMsgStoreCmdAuthenticate;
+const TMsgStoreMessages KMsgStoreCmdFirstWriteUserData  = EMsgStoreCmdSetPassword;
+const TMsgStoreMessages KMsgStoreCmdLast                = EMsgStoreCmdWipeEverything;
+
+
+// The first 4 bits of the message ID are used to encode the type of the container.
+enum TMsgStoreContainerMasks
+	{
+	EMsgStoreMailBoxBits    = 0x00000000,
+	EMsgStoreFolderBits     = 0x10000000,
+	EMsgStoreMessageBits    = 0x20000000,
+	EMsgStorePartBits       = 0x30000000,
+	EMsgStoreContainerMask  = 0xF0000000,
+	};
+
+struct TMsgStoreCounts
+	{
+	TUint iMessagesCount;
+	TUint iUnreadCount;
+	};
+	
+const TUint KMsgStoreCountsLength = sizeof(TMsgStoreCounts);
+
+// iType will be a value of TMsgStoreOperation, TMsgStoreSystemEvent, or TMsgStoreAccountEvent
+// For system events, only the type field is used.
+struct TMsgStoreEvent
+	{
+	TMsgStoreId iMailBoxId;
+	TUint       iType;
+	TMsgStoreId iId;
+	TMsgStoreId iParentId;
+	TMsgStoreId iOtherId;
+	TUint32     iFlags;	
+	TBuf8<KMaxAccountNameLen> iAccountName;
+	TBuf8<KMaxAccountNameLen> iNewAccountName;   //for rename account only
+	}; // end TMsgStoreEvent
+    
+struct TMsgStoreCopyContainerCmdParams
+    {    
+    TMsgStoreId iId;
+    TMsgStoreId iSourceId;
+    TMsgStoreId iSourceParentId;
+    TMsgStoreId iDestinationId;
+    TMsgStoreId iDestinationParentId;
+	TMsgStoreId iMailBoxId;
+    }; // end TMsgStoreCopyContainerCmdParams
+    
+struct TMsgStoreFetchPropertiesCmdParams
+	{
+	TMsgStoreId iId;
+	TMsgStoreId iGrandparentId;
+	TMsgStoreId iMailboxId;
+	}; // end TMsgStoreFetchPropertiesCmdParams
+	
+struct TMsgStorePropertiesListCmdParams
+	{
+	// input parameters
+	TBool iStartOver;
+	TBool iUseQuery;
+	TBool iQuickProperties; // only supported if iUseQuery = ETrue
+	
+	// output parameters
+	TBool iMoreProperties;     
+	TBool iClearExisting;
+	TUint iNewBufferSize;
+	}; // end TMsgStoreChildrenPropertiesCmdParams
+
+struct TMsgStorePropertiesListQueryParams
+	{
+	TMsgStoreId             iId;        
+	TMsgStoreId             iParentId;  
+	TMsgStoreContainerMasks iType;      
+	TBool                   iRecursive; 
+	}; // end TMsgStoreChildrenPropertiesCmdParams
+
+struct TMsgStoreCreateContainerCmdParams
+	{
+	TMsgStoreId             iParentId;
+	TMsgStoreId             iGrandparentId;
+	TMsgStoreId             iMailBoxId;
+	TBool                   iCommitContainer;
+	TMsgStoreContainerMasks iType;
+	TBool                   iHasContent;
+	TMsgStoreId             iId;  // out parameter
+	}; // end TMsgStoreCreateContainerCmdParams
+	
+struct TMsgStoreUpdatePropertyCmdParams
+	{
+	TMsgStoreId iId;
+	TMsgStoreId iParentId;
+	TMsgStoreId iMailBoxId;
+	TUint8      iType;
+	}; // end TMsgStoreUpdatePropertyCmdParams
+	
+struct TMsgStoreOpenAccountCmdParams
+	{
+	TInt32       iOwnerId;
+	TMsgStoreId  iMailBoxId;
+	}; // end TMsgStoreOpenAccountCmdParams
+    
+/** Defines the search criteria (not including the leading string to be ignored ) */
+struct TMsgStoreSortCriteria 
+    {
+    /** Specifies the mailbox id
+     */
+    TMsgStoreId          iMailBoxId;
+    
+    /** Specifies the folder in which the sorting is to be perform
+     */
+    TMsgStoreId          iFolderId;
+    
+    /** Specifies the sort field
+     */
+    TMsgStoreSortByField iSortBy;
+    
+    /** Specifies the sort order
+     */
+    TMsgStoreSortOrder   iSortOrder;
+    
+    /** defines the order for the secondary field (received date) when primary field is NOT EMsgStoreSortByReceivedDate
+     */
+    TMsgStoreSortOrder   iSecondarySortOrder;  
+    };
+    
+struct TMsgStoreGetSortedRowsCmdParams
+    {
+    TMsgStoreId                 iSortSessionId;
+    TMsgStoreId                 iStartingMessageId;
+    TMsgStoreIteratorDirection  iDirection;
+    TUint                       iRowsToRetrieve;
+    TBool                       iHasStartWith;
+    TBool                       iSkipCurrentGroup;
+    TBool                       iHasMoreRows;
+    };
+    
+struct TMsgStoreSearchCmdParams
+    {
+    TUint                 iSearchFields;
+    TMsgStoreSortByField  iSortBy;
+    TMsgStoreSortOrder    iSortOrder;
+    TMsgStoreSortOrder    iSecondarySortOrder;  
+    };
+
+#endif // __MESSAGE_STORE_CLIENT_SERVER_H__
+
+
+