ipappsrv_plat/multimedia_comms_api/inc/mcemsrpsink.h
branchrcs
changeset 49 64c62431ac08
child 50 1d8943dd8be6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ipappsrv_plat/multimedia_comms_api/inc/mcemsrpsink.h	Mon Sep 06 17:32:13 2010 +0530
@@ -0,0 +1,184 @@
+/*
+* 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:    
+*
+*/
+
+
+
+#ifndef CMCEMSRPSINK_H
+#define CMCEMSRPSINK_H
+
+// INCLUDES  
+#include <mcemediasink.h>
+#include <e32std.h>
+#include <bamdesca.h>
+#include<uri8.h>
+#include<e32des8.h>
+#include <mcemessagestream.h>
+#include <badesca.h>
+
+// CONSTANTS
+const TMceSinkType KMceMSRPSink = 5;
+
+// CLASS DECLARATION
+
+/**
+* Class representing a MSRP sink (RFC 4975).
+* 
+*  @lib mceclient.lib
+*/
+class CMceMsrpSink: public CMceMediaSink
+    {
+    public: // Constructors and destructor
+
+        /**
+        * Two-phased constructor.        
+        */
+        IMPORT_C static  CMceMsrpSink* NewL();
+	
+		/**
+        * Two-phased constructor.
+        */
+		IMPORT_C static CMceMsrpSink* NewLC();
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C ~CMceMsrpSink();
+
+    public: // From CMceMediaSink
+
+        /**
+        * Sets the sink enabled. 
+        */
+        IMPORT_C void EnableL(); 
+
+        /**
+        * Sets the sink disabled.
+        */
+        IMPORT_C void DisableL();
+
+    public: // New functions
+
+	/**
+        * Gets the value for "path" attribute.
+        */
+        IMPORT_C RPointerArray<TUriC8>& Path();
+
+	/**
+        * Sets the value for "path" attribute.
+        */
+        IMPORT_C void SetPathL( const RPointerArray<TUriC8>& aPath );
+
+	/**
+        * Gets the values for "accept-types" attribute.
+        */
+        IMPORT_C void AcceptTypesL(CDesC8ArrayFlat& aAcceptTypes);
+
+	/**
+        * Sets the values for "accept-types" attribute.
+        */
+        IMPORT_C void SetAcceptTypesL( const MDesC8Array& aAcceptTypes );
+        
+        /**
+         * Gets the values for "accept-wrapped-types" attribute
+         */
+        
+        IMPORT_C TDes8& AcceptWrappedTypesL();
+        
+        /**
+         * Sets the values for "accept-wrapped-types" attribute.
+         * @param aAcceptWrappedTypes list of MIME types that are allowed inside compound types 
+         */
+        
+        IMPORT_C void SetAcceptWrappedTypesL ( const TDes8& aAcceptWrappedTypes );
+        
+        /**
+         * Sets the values for file-selector attributes ('name', 'type', 'size').
+         * @param aName name of the file to be transferred
+         * @param aPath path of the file to be transferred
+         */            
+        IMPORT_C void SetFileSelectorL(const TDesC& aName = KNullDesC,
+                                       const TDesC8& aFileType = KNullDesC8,
+                                       TUint aSize = 0 );
+        
+        /**
+         * Sets the value for file-disposition attribute.
+         * @param aDispositionValue indicate a preferred disposition of the file to be transferred
+         */            
+        IMPORT_C void SetFileDispositionL (const TDes8& aDispositionValue);
+        
+        /**
+         * Sets the value for file-transfer-id attribute.
+         * @returns the value of the file-transfer-id
+         */
+        IMPORT_C void SetFileTransferIdL (TDes8& aId);
+        
+        /**
+         * Sets the information attribue.
+         * @param aInfo information to be set 
+         */
+        IMPORT_C void SetInformationAttrL(const TDes8& aInfo);
+        
+        /**
+         * Set the path to save the received file in file sharing use case
+         * It is mandatory for the clients to set this path to let
+         * the MCE know the path where the received file will be shared
+         * 
+         * @Param aFilePath Holds the path to save the received file
+         */
+        IMPORT_C void SetPathToSaveReceivedFile(const TDesC16& aFilePath);
+        
+        /*
+         * Used to get the file transfer progress notifications like transferred x bytes 
+         * out of total y file size. This is true by default. 
+         * @param enableFlag Default value is ETrue. 
+         */
+        IMPORT_C void EnableFileTransferProgressNotifications(TBool enableFlag = ETrue);
+        
+    public: // for internal purpose
+        /**
+         * 
+         */
+        void InitializeL( CMceMediaStream& aParent );
+        
+        
+    private: 
+		/**
+	     * C++ default constructor.
+	     */
+        CMceMsrpSink();
+		/**
+	     * C++ parameterized constructor.
+	     */        
+	
+		/**
+	     * Second phase constructior.
+	     */
+		 void ConstructL();
+		 
+         /**
+          * Sets the local media port form the MSRP path attribute
+          * @par aMsrpUri The Uri from which the port has to be extracted
+          * @aStream  Sets the local media port with the port extracted form the aMsrpUri 
+          */
+         void SetPortFromPathAttrL(TUriC8& aMsrpUri, CMceMessageStream& aStream);
+         
+         //for testing
+
+         MCE_UNIT_TEST_DEFS  
+    };
+
+#endif // CMCEMSRPSINK_H