emailservices/emailstore/message_store/client/api/MsgStoreWritablePropertyContainer.h
changeset 0 8466d47a6819
child 8 e1b6206813b4
equal deleted inserted replaced
-1:000000000000 0:8466d47a6819
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Message store property container with permanent storage.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef __MSG_STORE_WRITABLE_PROPERTY_CONTAINER_H__
       
    21 #define __MSG_STORE_WRITABLE_PROPERTY_CONTAINER_H__
       
    22 
       
    23 //<cmail>
       
    24 #include "MsgStorePropertyContainer.h"
       
    25 //</cmail>
       
    26 
       
    27 class CMsgStoreSessionContext;
       
    28 
       
    29 /** This class associates a collection of properties with permanent storage.
       
    30 
       
    31 	This class associates a collection of properties (i.e. name/value pairs) with a location in the
       
    32 	message store.  Functions are provided to store all of the properties, or to store an individual
       
    33 	property.
       
    34 	
       
    35 	\note: The functions in the parent class manipulate RAM copies of the properties.  The functions in
       
    36 	       this class must be used in order to store the updates in permanent memory.
       
    37 */
       
    38 class CMsgStoreWritablePropertyContainer : public CMsgStorePropertyContainer
       
    39 	{
       
    40 	public:
       
    41 	
       
    42 		/** Writes all properties to storage. When a new message is being created this method won't
       
    43 		work until the message is committed. */
       
    44 		IMPORT_C void StorePropertiesL( );
       
    45 		
       
    46 		/** Writes an individual property to storage. When a new message is being created this
       
    47 		method won't work until the message is committed. */
       
    48 		IMPORT_C void StorePropertyL( TUint aPropertyIndex );
       
    49         
       
    50         /** Internal method, not exported */
       
    51         static CMsgStoreWritablePropertyContainer* NewL( CMsgStoreSessionContext& aSessionContext, 
       
    52                                                          TMsgStoreId              aId, 
       
    53                                                          TMsgStoreId              aParentId,
       
    54                                                          TMsgStoreId              aMailBoxId,
       
    55                                                          const TDesC8&            aPropertiesBuf );
       
    56 		
       
    57 	protected:
       
    58     
       
    59         CMsgStoreWritablePropertyContainer( CMsgStoreSessionContext& aSessionContext, TMsgStoreId aId, TMsgStoreId aParentId, TMsgStoreId aMailBoxId );
       
    60         
       
    61         void ConstructL( const TDesC8& aProperties );
       
    62 	
       
    63 		CMsgStoreSessionContext& iContext;
       
    64 		const TMsgStoreId        iMailBoxId;
       
    65 		
       
    66 	}; // end class CMsgStoreWritablePropertyContainer
       
    67 
       
    68 #endif   //__MSG_STORE_WRITABLE_PROPERTY_CONTAINER_H__