idlehomescreen/xmluicontroller/inc/transactionfactory.h
branchRCL_3
changeset 34 5456b4e8b3a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluicontroller/inc/transactionfactory.h	Wed Sep 01 12:32:46 2010 +0100
@@ -0,0 +1,161 @@
+/*
+* Copyright (c) 2005-2007 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:  Transaction factory
+*
+*/
+
+
+#ifndef M_TRANSACTIONFACTORY_H
+#define M_TRANSACTIONFACTORY_H
+
+namespace AiXmlUiController
+    {
+    class MTransaction;
+    class MTransactionElement;
+    }
+
+class CXnNodeAppIf;
+class CGulIcon;
+class RFile;
+
+
+namespace AiXmlUiController
+{
+
+/**
+*  MTransactionFactory provides life-cycle management of transactions and
+*  transaction elements.
+*
+*  @lib AiXmlUiMain
+*/
+class MTransactionFactory
+    {
+public:
+
+    // New functions
+    
+    /**
+    * Creates a new transaction.
+    *
+    * @param aTxId the transaction identifier
+    */
+    virtual MTransaction* CreateTransactionL( TInt aTxId ) = 0;
+    
+    /**
+    * Releases a transaction element.
+    *
+    * @param aTransaction the transaction to release
+    */
+    virtual void ReleaseTransaction( MTransaction* aTransaction ) = 0;
+
+    /**
+    * Creates a new text transaction element.
+    *
+    * @param aTarget the target node of the transaction element
+    * @param aText the text to update 
+    * @param aPriority Priority
+    */
+    virtual MTransactionElement* CreateTextTransactionElementL( 
+        CXnNodeAppIf& aTarget, const TDesC& aText, TInt aPriority ) = 0;                                       
+
+    /**
+    * Creates a new data buffer transaction element.
+    *
+    * @param aTarget the traget node of the transaction element
+    * @param aData the data to update
+    * @param aPriority Priority
+    * @param aCid Content selector id
+    * @param aIndex Content index
+    */
+    virtual MTransactionElement* CreateDataBufferTransactionElementL( 
+        CXnNodeAppIf& aTarget, const TDesC8& aData, TInt aPriority, const TDesC& aCid, TInt aIndex ) = 0;
+    
+    /**
+    * Creates a new data buffer transaction element.
+    *
+    * @param aTarget the traget node of the transaction element
+    * @param aData the data to update
+    * @param aPriority Priority    
+    */
+    virtual MTransactionElement* CreateDataBufferTransactionElementL( 
+        CXnNodeAppIf& aTarget, const TDesC8& aData, TInt aPriority ) = 0;
+        
+    /**
+    * Creates a new empty content transaction element.
+    *
+    * @param aTarget the target node of the transaction element
+    * @param aText the text to update 
+    */
+    virtual MTransactionElement* CreateEmptyContentTransactionElementL( 
+        CXnNodeAppIf& aTarget, TInt aIndex ) = 0;
+
+    /**
+    * Creates a new image transaction element.
+    *
+    * @param aTarget the target node of the transaction element
+    * @param aIcon the icon to update. Ownership transferred.
+    * @param aPriority Priority
+    */
+    virtual MTransactionElement* CreateImageTransactionElementL( 
+        CXnNodeAppIf& aTarget, CGulIcon* aIcon, TInt aPriority ) = 0;
+    
+    /**
+    * Creates a new image transaction element.
+    *
+    * @param aTarget the target node of the transaction element
+    * @param aFile the file to read image data from.
+    * @param aPriority Priority
+    */
+    virtual MTransactionElement* CreateImageTransactionElementL( 
+        CXnNodeAppIf& aTarget, RFile& aFile, TInt aPriority ) = 0;
+
+    /**
+    * Creates a new newsticker transaction element.
+    *
+    * @param aTarget the target node of the transaction element
+    * @param aText the text to update     
+    * @param aPriority Priority
+    * @param aIndex Newsticker title index
+    */
+    virtual MTransactionElement* CreateNewsTickerTransactionElementL( 
+        CXnNodeAppIf& aTarget, const TDesC& aText, TInt aPriority, TInt aIndex ) = 0;
+                                                        
+    /**
+    * Releases a transaction element.
+    *
+    * @param aElement the element to release.
+    */
+    virtual void ReleaseTransactionElement(
+        MTransactionElement* aElement ) = 0;
+
+    /**
+    * Checks if given content type is supported by target element.
+    *
+    * @param aTarget the target UI element.
+    * @param aContentType the content type
+    * @return ETrue if content type is supported, otherwise EFalse.
+    */
+    virtual TBool IsSupported( 
+        CXnNodeAppIf& aTarget, const TDesC8& aContentType ) = 0;                               
+
+protected:
+
+    ~MTransactionFactory(){};        
+    };
+
+} // namespace AiXmlUiController
+
+#endif      // M_TRANSACTIONFACTORY_H  
+           
+//  End of File