diff -r 000000000000 -r 8466d47a6819 emailservices/emailstore/message_store/common/inc/MessageStoreClientServer.h --- /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 +// +#include "MsgStoreTypes.h" +#include "MsgStoreAccount.h" +// + +// ========= +// 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 iAccountName; + TBuf8 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__ + + +