brandingserver/bsclient/cbsaccess.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: cbsaccess.h
*
* Description: cbsaccess.h
*
*/


#ifndef __CBSACCESS_H__
#define __CBSACCESS_H__
#include <e32std.h>
#include "mbsaccess.h"
#include "cbsclient.h"


// Forward declarations
class CFbsBitmap;

/**
 * 
 */
NONSHARABLE_CLASS( CBSAccess ): public CBase,
								public MBSAccess
    {
	public:
		/**
		* Two-phased constructor.
		*/
		static CBSAccess* NewL( const TDesC8& aBrandId,
								const TDesC8& aAppId,
								const TDesC8& aDefaultBrandId,
								TLanguage aLanguageId,
        					  	TBool aCacheData,
								TInt aReserved = 0 );

		// destructor
    	virtual ~CBSAccess();

		/*
		* Close
		*/
		void Close();

	private:

    	void ConstructL( const TDesC8& aBrandId, 
    					 const TDesC8& aAppId, 
    					 const TDesC8& aDefaultBrandId );
		CBSAccess( TLanguage aLanguageId, TBool aCacheData, TInt aReserved = 0);


	private: // from MBranding

    	/*
    	* Get text type item
    	* @param aId ID of the item
    	* @return the text item
    	*/
        HBufC* GetTextL( const TDesC8& aId );

    	/*
    	* Get text type item
    	* @param aId ID of the item
    	* @return the text item
    	*/
        HBufC* GetTextLC( const TDesC8& aId );

    	/*
    	* Get 8-bit data type item
    	* @param aId ID of the item
    	* @return the data buffer item
    	*/
        HBufC8* GetBufferL( const TDesC8& aId );

    	/*
    	* Get 8-bit data type item
    	* @param aId ID of the item
    	* @return the data buffer item
    	*/
        HBufC8* GetBufferLC( const TDesC8& aId );

    	/*
    	* Get integer type item
    	* @param aId ID of the item
    	* @return the integer item
    	*/
        TInt GetIntL( const TDesC8& aId );


    	/*
    	* Get an array of items
    	* @param aIds ID's of the items
    	* @return the items
    	*/
        MBSElement* GetSeveralL( MDesC8Array& aIds );

    	/*
    	* Get a file item
    	* @param aId ID of the item
    	* @param aFile on return will contain an open file handle
    	*        to the file
    	*/
        void GetFileL( const TDesC8& aId, RFile& aFile );

    	/*
    	* Get a structure type item
    	* @param aIds ID of the item
    	* @param aFile on return will contain the strucure type item
    	* @return structure branding element
    	*/
        MBSElement* GetStructureL( const TDesC8& aId );

    	/*
    	* Register to observer brand data updates
    	* @param aObserver the observer interface
    	*/
        void RegisterObserverL( MBSBrandChangeObserver* aObserver, MBSBackupRestoreStateObserver *aBackupObserver );

    	/*
    	* Unregister a brand data update observer
    	* @param aObserver the observer interface
    	*/
        void UnRegisterObserverL( MBSBrandChangeObserver* aObserver, MBSBackupRestoreStateObserver *aBackupObserver);

    	/*
    	* Get a bitmap type item
    	* @param aBitmapId the ID of the bitmap item itself
    	* @param aBitmap on return will contain the bitmap
    	* @param aMask on return will contain the mask
    	*/
		void GetBitmapL( const TDesC8& aBitmapId,
						 CFbsBitmap*& aBitmap,
						 CFbsBitmap*& aMask );



	TInt isBrandUpdateRequiredL ();

		
    public:     // New methods



	private: // data
		HBufC8* iBrand;
		HBufC8* iDefaultBrand;
		HBufC8* iAppId;
		TLanguage iLanguageId;
		TBool iUseCache;
		RBSClient iClient;
		TInt iReserved;
    };

#endif      //  __CBSACCESS_H__


//  END OF FILE