brandingserver/inc/mbsupdater.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:27:45 +0100
branchRCL_3
changeset 22 113b91e0a2ad
parent 21 cfd5c2994f10
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* 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: MBSUpdater
 *
*/



 #ifndef __MBSUPDATER_H
 #define __MBSUPDATER_H

 #include <e32std.h>
 #include <mbselement.h>

class MBSBackupRestoreStateObserver ;

const TInt KBSAutomaticVersionUpdate = -1;

 /**
  * An interface for updating branding information
  *
  * @since
  */
 class MBSUpdater
     {
     public:

		enum TUpdateTransactionType
			{
			EUpdateInstall = 1,
			EUpdateAppend,
			EUpdateReplace,
			EUpdateUninstall
			};

		//*** TRANSACTION HANDLING ***//

     	/*
     	* Start transaction for installing a brand.
     	* @param aApplicationId id of the application
     	* @param aBrandId id of the brand
     	* @param aLanguageId languageid of the brand
     	* @param aReserved for further use
     	*/
        virtual void StartTransactionL( const TDesC8& aBrandId,
         								TLanguage aLanguageId,
         								TUpdateTransactionType aType = EUpdateInstall,
         								TInt aReserved = 0 ) = 0;

     	/*
     	* Stop brand installation transaction.
     	* Calling this will indicate that the brand has
     	* been updated completely and it will be taken
     	* into use.
     	* @return new version of the installed/updated brand
     	*/
		virtual TInt StopTransactionL() = 0;

     	/*
     	* Cancels brand installation transaction.
     	* All the elements updated in this transaction
     	* will be discarded.
     	*/
		virtual void CancelTransactionL() = 0;


		//*** BRAND REMOVING ***//
		
     	/*
     	* Removes all brand data from the specified brand.
     	*/
		virtual void RemoveBrandL( const TDesC8& aApplicationId,
								   const TDesC8& aBrandId ) = 0;

     	/*
     	* Removes all brand data from the specified application.
     	*/
		virtual void RemoveBrandsL( const TDesC8& aApplicationId ) = 0;


		//*** BRAND INSTALLING ***//


    	/*
    	* Insert text type item into the new brand
    	* @param aId ID of the item
    	* @param aText the text item
    	*/
        virtual void InsertTextL( const TDesC8& aId, const TDesC& aText ) = 0;

    	/*
    	* Insert 8-bit data type item into the new brand
    	* @param aId ID of the item
    	* @param aBuffer the data item
    	*/
        virtual void InsertBufferL( const TDesC8& aId, const TDesC8& aBuffer ) = 0;

    	/*
    	* Insert integer type item into the new brand
    	* @param aId ID of the item
    	* @param aInt the integer item
    	*/
        virtual void InsertIntL( const TDesC8& aId, TInt aInt ) = 0;

    	/*
    	* Insert a file type item into the new brand.
    	* Note that the this is only the id and file name pair,
    	* the file itself has to be imported separately.
    	* @param aId ID of the item
    	* @param aFile the integer item
    	*/
        virtual void InsertFileL( const TDesC8& aId,
        					   	  const TDesC& aFileName ) = 0;

     	/*
     	* Inserts an element into the brand that is being installed.
     	* @param aElement the element
     	*/
        virtual void InsertElementL( MBSElement* aElement ) = 0;





		//*** BRAND UPDATING - replacing ***//


    	/*
    	* Insert text type item into the new brand
    	* @param aId ID of the item
    	* @param aText the text item
    	*/
        virtual void ReplaceTextL( const TDesC8& aId, const TDesC& aText ) = 0;

    	/*
    	* Insert 8-bit data type item into the new brand
    	* @param aId ID of the item
    	* @param aBuffer the data item
    	*/
        virtual void ReplaceBufferL( const TDesC8& aId, const TDesC8& aBuffer ) = 0;

    	/*
    	* Insert integer type item into the new brand
    	* @param aId ID of the item
    	* @param aInt the integer item
    	*/
        virtual void ReplaceIntL( const TDesC8& aId, TInt aInt ) = 0;

    	/*
    	* Insert a file type item into the new brand.
    	* Note that the this is only the id and file name pair,
    	* the file itself has to be imported separately.
    	* @param aId ID of the item
    	* @param aFile the integer item
    	*/
        virtual void ReplaceFileL( const TDesC8& aId,
        					   	  const TDesC& aFileName ) = 0;

     	/*
     	* Inserts an element into the brand that is being installed.
     	* @param aElement the element
     	*/
        virtual void ReplaceElementL( MBSElement* aElement ) = 0;



		//*** BRAND UPDATING - appending ***//


    	/*
    	* Insert text type item into the new brand
    	* @param aId ID of the item
    	* @param aText the text item
    	*/
        virtual void AppendTextL( const TDesC8& aId, const TDesC& aText ) = 0;

    	/*
    	* Insert 8-bit data type item into the new brand
    	* @param aId ID of the item
    	* @param aBuffer the data item
    	*/
        virtual void AppendBufferL( const TDesC8& aId, const TDesC8& aBuffer ) = 0;

    	/*
    	* Insert integer type item into the new brand
    	* @param aId ID of the item
    	* @param aInt the integer item
    	*/
        virtual void AppendIntL( const TDesC8& aId, TInt aInt ) = 0;

    	/*
    	* Insert a file type item into the new brand.
    	* Note that the this is only the id and file name pair,
    	* the file itself has to be imported separately.
    	* @param aId ID of the item
    	* @param aFile the integer item
    	*/
        virtual void AppendFileL( const TDesC8& aId,
        					   	  const TDesC& aFileName ) = 0;

     	/*
     	* Inserts an element into the brand that is being installed.
     	* @param aElement the element
     	*/
        virtual void AppendElementL( MBSElement* aElement ) = 0;


        /*
        * Closes the handle to server and deletes the object.
        */
		virtual void Close() = 0;
		
    	/*
    	* Register to observer backup restore state change
    	* @param aObserver the observer interface
    	*/
        virtual void RegisterObserverL( MBSBackupRestoreStateObserver* aBackupObserver ) = 0;
		
    	/*
    	* Unregister a backup restore state change observer
    	* @param aObserver the observer interface
    	*/
        virtual void UnRegisterObserverL( MBSBackupRestoreStateObserver* aObserver ) = 0;
		

	protected:
     	/*
     	* Destructor
     	*/
     	virtual ~MBSUpdater() {};
     };

 #endif //__MBSUPDATER_H