1.1 --- a/epoc32/include/mmsvstoremanager.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,254 +0,0 @@
1.4 -// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 -// All rights reserved.
1.6 -// This component and the accompanying materials are made available
1.7 -// 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
1.8 -// which accompanies this distribution, and is available
1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 -//
1.11 -// Initial Contributors:
1.12 -// Nokia Corporation - initial contribution.
1.13 -//
1.14 -// Contributors:
1.15 -//
1.16 -// Description:
1.17 -//
1.18 -
1.19 -#ifndef __MMSVSTOREMANAGER_H__
1.20 -#define __MMSVSTOREMANAGER_H__
1.21 -
1.22 -#include <msvstd.h>
1.23 -
1.24 -/**
1.25 -Provides the File Access mechanism to the files that are stored in the message server's
1.26 -data cage in a secure manner. Presents a common interface to message store file access
1.27 -regardless of the process that its running in.
1.28 -For instance, when the File Access APIs are used on the client-side process, the implementation
1.29 -uses secure IPC calls to the message server that includes capability policing, however,
1.30 -when the same API is used on the server-side, the implementation has direct access to
1.31 -the file in the message store.
1.32 -
1.33 -@internalTechnology
1.34 -*/
1.35 -class MMsvStoreManager
1.36 -{
1.37 -public:
1.38 - /**
1.39 - Allows clients to create a new empty file and allows clients to stream data to it.
1.40 -
1.41 - Creates a new attachment file in the message store for the message entry specified by the aEntryId
1.42 - parameter. The attachment filename is set to the filename indicated by the aFilename parameter.
1.43 - The empty attachment file is passed back to the client using an opened file handle to the file in the message store.
1.44 -
1.45 - @param aEntryId The entry for which an attachment needs to be created in the message store
1.46 - @param aFilename The name of the attachment file to be created
1.47 - @param aFile On return, The created file handle for the attachment file.The ownership is transferred . The caller must close the file handle.
1.48 - @leave KErrAlreadyexists, if the file with the same name already existed the directory.
1.49 - */
1.50 - virtual TBool CreateAttachmentForWriteL(TMsvId aEntryId, TDes& aFilename, RFile& aFile)=0;
1.51 -
1.52 - /**
1.53 - Allows clients to replace an existing attachment file and allows clients to stream data to it.
1.54 -
1.55 - Replaces an existing attachment file in the message store for the message entry specified by the aEntryId
1.56 - parameter. The attachment filename is set to the filename indicated by the aFilename parameter.
1.57 - If an attachment with the supplied name does not exist, a new file is created. The empty attachment
1.58 - file is passed back to the client using an opened file handle to the file in the message store.
1.59 -
1.60 - @param aEntryId The entry for which an attachment needs to be created in the message store
1.61 - @param aFilename The name of the attachment file to be created
1.62 - @param aFile On return, The created file handle for the attachment file.The ownership is transferred . The caller must close the file handle.
1.63 - */
1.64 - virtual void ReplaceAttachmentForWriteL(TMsvId aEntryId, TDes& aFilename, RFile& aFile)=0;
1.65 -
1.66 - /**
1.67 - Allows clients to view attachment files.
1.68 -
1.69 - Opens an existing attachment file in the message associated with the message
1.70 - entry specified by the aEntryId parameter. The attachment is identified by
1.71 - the file path specified by the aFilePath parameter. The attachment file is
1.72 - returned as a read-only file handle to the file in the message store.
1.73 -
1.74 - @param aEntryId The entry whose attachment needs to be opened/read from the message store
1.75 - @param aFilePath The name and path of the attachment file to be opened
1.76 - @param aFile On return, The opened file handle for the attachment file.The ownership is transferred . The caller must close the file handle.
1.77 - */
1.78 - virtual void OpenAttachmentL(TMsvId aEntryId, const TDesC& aFilePath, RFile& aFile)=0;
1.79 -
1.80 - /**
1.81 - Allows clients to open an attachment file for writing.
1.82 -
1.83 - Opens an existing attachment file in the message associated with the message
1.84 - entry specified by the aEntryId parameter. The attachment is identified by
1.85 - the file path specified by the aFilePath parameter. The attachment file is
1.86 - returned as a read/write file handle to the file in the message store.
1.87 -
1.88 - @param aEntryId The entry whose attachment needs to be opened/read from the message store
1.89 - @param aFilePath The name and path of the attachment file to be opened
1.90 - @param aFile On return, The opened file handle for the attachment file.The ownership is transferred . The caller must close the file handle.
1.91 - */
1.92 - virtual void OpenAttachmentForWriteL(TMsvId aEntryId, const TDesC& aFilePath, RFile& aFile)=0;
1.93 -
1.94 -
1.95 - /**
1.96 - Allow clients to delete existing attachment files.
1.97 -
1.98 - Deletes an existing attachment file in the message store associated with the
1.99 - message entry specified by the aEntryId parameter. The attachment is
1.100 - identified by the file path specified by the aFilePath parameter.
1.101 -
1.102 - @param aEntryId The entry whose attachment needs to be deleted from the message store
1.103 - @param aFilePath The name and path of the attachment file to be deleted
1.104 - @return KErrNone if successful, otherwise any of the system wide error codes.
1.105 - */
1.106 - virtual TInt DeleteAttachment(TMsvId aEntryId, const TDesC& aFilePath)=0;
1.107 -
1.108 - /**
1.109 - Renames an existing attachment file.
1.110 -
1.111 - Renames an existing attachment file in the message store associated with the
1.112 - message entry specified by the aEntryId parameter. The attachment is
1.113 - identified by the file path specified by the aOldFilePath parameter and renamed to
1.114 - the name supplied in the aNewName paramter.
1.115 -
1.116 - @param aEntryId The entry whose attachment needs to be renamed from the message store
1.117 - @param aOldFilePath The name and path of the attachment file to be renamed.
1.118 - @param aNewName The new name of the attachment file.
1.119 - @return KErrNone if successful, otherwise any of the system wide error codes.
1.120 - */
1.121 - virtual TInt RenameAttachment(TMsvId aEntryId, const TDesC& aOldFilePath, const TDesC& aNewName) = 0;
1.122 -
1.123 - /**
1.124 - Check if an attachment file with the given path and name already exists.
1.125 -
1.126 - @param aFilePath The full path specification of the file.
1.127 - @return ETrue if file exists, otherwise EFalse.
1.128 - */
1.129 - virtual TBool FileExistsL(const TDesC& aFilePath)=0;
1.130 -
1.131 - /**
1.132 - Queries the message server for the file path where attachments are stored for the
1.133 - a particular message entry.
1.134 -
1.135 - @param aEntryId The message entry for which the attachment path is required.
1.136 - @param aFilePath On return, this will be set to the file path where the attachment should be stored.
1.137 - */
1.138 - virtual void AttachmentFilePathL(TMsvId aEntryId, TDes& aFilePath) = 0;
1.139 -
1.140 - // To support CMsvStore to provide message store file management.
1.141 - /**
1.142 - Allows the message store classes to read the store file for a particular message entry.
1.143 -
1.144 - Opens a message store file associated with the message entry specified by the aEntryId parameter.
1.145 - This method returns an open read-only file handle to the message store file.
1.146 -
1.147 - @param aEntryId The entry whose store needs to be opened/read
1.148 - @param aFile On return, The opened file hanlde to the store . The ownership is transferred . The caller must close the file handle.
1.149 - @leave KErrNotFound if file is not found else any of the system wide errors
1.150 - */
1.151 - virtual TInt OpenFileStoreForRead(TMsvId aEntryId, RFile& aFile)=0;
1.152 -
1.153 - /**
1.154 - Opens a temporary store file associated with the message entry specified by the aEntryId parameter.
1.155 - This method returns an open read-write file handle with an exclusive share to the temporary store file.
1.156 - The temporary store file is defined as \<store_filename\>.new. Data can be streamed to the temporary store file.
1.157 - It is expected that once the temporary store file has been written to and then closed, a call to
1.158 - ReplaceFileStoreL is required to replace the old store file with this temporary one.
1.159 -
1.160 - Along with ReplaceFileStoreL, this method allows the message store classes to write data
1.161 - to the store file for a particular message entry.
1.162 -
1.163 - @param aEntryId The entry whose store needs to be opened/read
1.164 - @param aFile On return, The opened file hanlde to the store . The ownership is transferred . The caller must close the file handle.
1.165 - */
1.166 - virtual void OpenTempStoreFileL(TMsvId aEntryId, RFile& aFile)=0;
1.167 -
1.168 - /**
1.169 - Replaces the current store file with the temporary store file, created from OpenTempStoreFileL,
1.170 - for the message entry as specified by the aEntryId parameter. The method replaces the store file with
1.171 - the temporary file (<store_filename.new>) and if successful, will then delete the temporary store file.
1.172 - This method assumes that the temporary file exists, otherwise a KErrNotFound error occurs.
1.173 -
1.174 - Along with OpenTempStoreFileL, this method allows the message store classes to write data to the store
1.175 - file for a particular message entry.
1.176 -
1.177 - @param aEntryId The entry whose store needs to be replaced/overwritten
1.178 - */
1.179 - virtual void ReplaceFileStoreL(TMsvId aEntryId)=0;
1.180 -
1.181 - /**
1.182 - Deletes the store file associated with the message entry as specified by the aEntryId.
1.183 - Also attempts to delete the temporary store file if one exists.
1.184 -
1.185 - @param aEntryId The entry whose store needs to be deleted
1.186 - */
1.187 - virtual void DeleteFileStoreL(TMsvId aEntryId)=0;
1.188 -
1.189 - /**
1.190 - Queries the message server to check if a store file exists for the message entry specified by
1.191 - the aEntryId parameter.
1.192 -
1.193 - @param aEntryId The entry for whom the check for existance of store is being done
1.194 - @return ETrue if the store exists else EFalse
1.195 - */
1.196 - virtual TBool FileStoreExistsL(TMsvId aEntryId) const=0;
1.197 -
1.198 - /**
1.199 - Creates an Attachment using a ShareProtected RFs.Used in the case when a message contains a DRM attachment
1.200 -
1.201 - @param aEntryId The entry for which an attachment needs to be created in the message store
1.202 - @param aFilename The name of the attachment file to be created
1.203 - @param aFile On return, The created file handle for the attachment file.The ownership is transferred . The caller must close the file handle.
1.204 - @leave KErrAlreadyexists, if the file with the same name already existed the directory.
1.205 - */
1.206 - virtual TBool CreateShareProtectedAttachmentForWriteL(TMsvId aEntryId, TDes& aFilename, RFile& aFile) = 0;
1.207 -
1.208 - /**
1.209 - Gets the path of the bodytext file related to a message in the message store for the message id passed to it.
1.210 - @param aBodyTextId The Id of the bodytext for which the path is required in the message store
1.211 - @param aFilename On return, The path of the file corresponding to the message Id passed.
1.212 - @leave KErrAlreadyexists, if the file with the same name already existed the directory.
1.213 - */
1.214 - virtual void BodyTextFilePathL(TMsvId aMessageId, TDes& aFilepath) = 0;
1.215 -
1.216 - /**
1.217 - Allows the message store classes to read the store file for a particular message entry.
1.218 -
1.219 - Opens a message store file associated with the message entry specified by the aFilepath parameter.
1.220 - This method returns an open read-only file handle to the message store file.
1.221 -
1.222 - @param aFile On return, The opened file hanlde to the store . The ownership is transferred . The caller must close the file handle.
1.223 - @param aBodyTextId The Id of the bodytext.
1.224 - @param aFilepath The path of the file that needs to be opened/read
1.225 - @leave KErrNotFound if file is not found else any of the system wide errors
1.226 - */
1.227 - virtual void OpenBodyTextFileForReadL(RFile& aFile, TMsvId aBodyTextId, const TDesC& aFilePath) = 0;
1.228 -
1.229 - /**
1.230 - Allows the message store classes to create the store file for a particular message entry.
1.231 -
1.232 - Creates a message store file associated with the message entry specified by the aFilepath parameter.
1.233 - This method returns an open read-write file handle to the message store file.
1.234 -
1.235 - @param aFile On return, The opened file hanlde to the store . The ownership is transferred . The caller must close the file handle.
1.236 - @param aBodyTextId The Id of the bodytext.
1.237 - @leave one of the other system-wide error codes.
1.238 - */
1.239 - virtual void CreatePlainTextFileL(RFile& aFile, TMsvId aBodyTextId) = 0;
1.240 -
1.241 - /**
1.242 - Deletes the store file associated with the message entry as specified by aFilepath.
1.243 -
1.244 - @param aBodyTextId The Id of the bodytext.
1.245 - @leave KErrNotFound if file is not found else any of the system wide errors
1.246 - */
1.247 - virtual void DeletePlainTextFileL(TMsvId aBodyTextId) = 0;
1.248 -
1.249 - /**
1.250 - Replaces the bodytext file associated with the message specified by aEntryId.
1.251 - @param aBodyTextId The Id of the bodytext.
1.252 - @leave KErrNotFound if file is not found else any of the system wide errors
1.253 - */
1.254 - virtual void ReplacePlainTextFileL(TMsvId aBodyTextId) = 0;
1.255 - };
1.256 -
1.257 -#endif // __MMSVSTOREMANAGER_H__