btobexprofiles/obexsendservices/obexservicesendutils/src/BTServiceParameterList.cpp
branchRCL_3
changeset 56 9386f31cc85b
parent 55 613943a21004
child 61 269724087bed
--- a/btobexprofiles/obexsendservices/obexservicesendutils/src/BTServiceParameterList.cpp	Tue Aug 31 15:25:10 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,571 +0,0 @@
-/*
-* Copyright (c) 2002 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:  parameter list implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include "BTServiceUtils.h"
-#include "BTServiceParameterList.h"
-#include "BTSUImageConverter.h"
-#include "BTSUXmlParser.h"
-#include "BTSUDebug.h"
-
-#include <apgcli.h> // RApaLSession
-#include <apmstd.h> // TDataType
-#include <imageconversion.h> //´Type solving
-#include <caf/content.h>
-
-// CONSTANTS
-
-_LIT( KBIPImageTypes, "JPEGBMPGIFWBMPPNGJPEG2000" );
-
-
-const TInt KBIPImageTypesLength     = 30;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::CBTServiceParameterList
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CBTServiceParameterList::CBTServiceParameterList()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CBTServiceParameterList::ConstructL()
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::ConstructL()"));    
-    iRemovedImageCount=0;
-    User::LeaveIfError( iFileSession.Connect() );
-    iFileSession.ShareProtected();
-
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::ConstructL() completed"));
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CBTServiceParameterList* CBTServiceParameterList::NewL()
-    {
-    CBTServiceParameterList* self = new( ELeave ) CBTServiceParameterList;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CBTServiceParameterList* CBTServiceParameterList::NewLC()
-    {
-    CBTServiceParameterList* self = new( ELeave ) CBTServiceParameterList;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// Destructor
-CBTServiceParameterList::~CBTServiceParameterList()
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::~CBTServiceParameterList()"));
-
-    TInt index = 0;
-
-    for ( ; index < iXhtmlList.Count(); index++ )
-        {
-        delete iXhtmlList[index].iFileName;
-        delete iXhtmlList[index].iRefObjectList;
-        }
-
-    for ( index = 0; index < iImageList.Count(); index++ )
-        {  
-                   
-        delete iImageList[index].iMimeType;
-        delete iImageList[index].iDisplayName;
-        if(iImageList[index].iFile.SubSessionHandle())
-            {
-            iImageList[index].iFile.Close();
-            }
-        
-        }
-        
-    for ( index = 0; index < iObjectList.Count(); index++ )
-    	{
-    	if(iObjectList[index].SubSessionHandle())
-    		{
-    		iObjectList[index].Close();
-    		}
-    	}
-
-    iXhtmlList.Close();
-    iImageList.Close();    
-    iObjectList.Close();
-    iFileSession.Close();
-    
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::~CBTServiceParameterList() completed"));
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::AddXhtmlL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CBTServiceParameterList::AddXhtmlL( const TDesC& aFilePath )
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddXhtmlL()"));
-
-    if ( &aFilePath == NULL || 
-         aFilePath.Length() == 0 ||
-         aFilePath.Length() > KMaxFileName )
-        {
-        User::Leave( KErrArgument );
-        }
-
-    // Allocate memory for filename
-    //
-    HBufC* file = aFilePath.AllocL();
-    CleanupStack::PushL( file );
-
-    // Resolve referenced objects
-    //
-    CBTSUXmlParser* parser = CBTSUXmlParser::NewL();
-    CleanupStack::PushL( parser );
-
-    CDesCArrayFlat* list = parser->GetRefObjectListL( aFilePath );
-    CleanupStack::PushL( list );
-
-    // Store parameter into list
-    //
-    TBTSUXhtmlParam param;
-    param.iFileName = file;
-    param.iRefObjectList = list;
-    User::LeaveIfError( iXhtmlList.Append( param ) );
-
-    CleanupStack::Pop( 3 ); // list, parser, file
-    delete parser;
-
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddXhtmlL() completed"));
-    }    
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::AddImageL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CBTServiceParameterList::AddImageL( const TDesC& aFilePath )
-    {   
-    if ( &aFilePath == NULL || 
-         aFilePath.Length() == 0 ||
-         aFilePath.Length() > KMaxFileName )
-        {
-        User::Leave( KErrArgument );
-        } 
-    RFile file;
-    User::LeaveIfError( file.Open( iFileSession, aFilePath, EFileShareReadersOnly) );
-    AddImageL(file);
-    file.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::AddImageL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CBTServiceParameterList::AddImageL( RFile aFile )
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddImageL()"));
-	TBool found;
-	TInt  retVal;
-	TBool isprotected = EFalse;
-   
-    //chekc that file handle is correct
-    if(!aFile.SubSessionHandle())
-        {
-        User::Leave( KErrArgument );
-        }
-        
-    //check if files are drm protected 
-        
-	ContentAccess::CContent* drm = ContentAccess::CContent::NewL(aFile);
-    drm->GetAttribute(ContentAccess::EIsProtected, isprotected);
-    delete drm;       
-    
-    
-    if(isprotected)
-   		{
-   		User::Leave( KErrNotSupported );
-   		}
-    
-
-    CBTSUImageConverter * imageConverter = CBTSUImageConverter::NewL();
-    CleanupStack::PushL( imageConverter );
-
-    // Allocate memory for filename
-    //
-
-    
-    // Resolve MIME type
-    //
-    RApaLsSession session;
-    HBufC8* mimeType = NULL;
-    TDataType type;
-    
-    TUid uid;
-
-    User::LeaveIfError( session.Connect() );
-    CleanupClosePushL( session );
-   
-    User::LeaveIfError( session.AppForDocument( aFile, uid, type ) );
-    mimeType = type.Des8().AllocL();
-      
-    CleanupStack::Pop(); // session
-    session.Close();   
-    
-    CleanupStack::PushL( mimeType );
-
-    // Resolve Display name
-    //    
-    HBufC* displayName = imageConverter->GetDisplayNameL( *mimeType );
-    CleanupStack::PushL( displayName );
-    
-    RFileExtensionMIMETypeArray fileExtensions;
-    
-    //Resolve what format are suported
-    TRAP( retVal, CImageDecoder::GetFileTypesL( fileExtensions ) );	
-	if( retVal != KErrNone )
-		{
-		fileExtensions.ResetAndDestroy();
-        User::Leave( retVal );
-		}
-		
-	found=EFalse;
-	TBuf<KBIPImageTypesLength> types = KBIPImageTypes();
-	
-	for( TInt index = 0; index < fileExtensions.Count(); index++ )
-		{
-		retVal=displayName->Compare((*fileExtensions[index]).DisplayName());		
-		if(retVal==0 &&  types.Find((*fileExtensions[index]).DisplayName())!=KErrNotFound )
-			{
-			found=ETrue;		
-			}
-		}		
-	fileExtensions.ResetAndDestroy();	
-	if(found==EFalse)
-		{
-		User::Leave(KErrNotSupported);
-		}
-	
-		
-    // Resolve file size
-    //
-    TInt fileSize = 0;
-    User::LeaveIfError( aFile.Size( fileSize ) );
-          	
-	
-    // Resolve width and height
-    //    
-    TSize decodeSize = imageConverter->GetImageSizeL( aFile );
-    
-    
-    // Store parameter into list
-    //
-    TBTSUImageParam param;
-    
-    param.iFile.Duplicate(aFile);
-    param.iMimeType = mimeType;
-    param.iDisplayName = displayName;
-    param.iFileSize = fileSize;
-    param.iPixelSize = decodeSize;    
-    param.iSend=EFalse;
-    
-    
-    User::LeaveIfError( iImageList.Append( param ) );
-
-    CleanupStack::Pop( 3 ); // displayName, mimeType, imageConverter
-    delete imageConverter;    
-
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddImageL() completed"));
-	}
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::AddObjectL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CBTServiceParameterList::AddObjectL( const TDesC& aFilePath )
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddObjectL()"));
-    
-    if ( &aFilePath == NULL || 
-         aFilePath.Length() == 0 ||
-         aFilePath.Length() > KMaxFileName )
-        {
-        User::Leave( KErrArgument );
-        }
-
-    RFile file;
-    User::LeaveIfError( file.Open( iFileSession, aFilePath, EFileShareReadersOnly) );
-    AddObjectL(file);
-    file.Close();
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddObjectL() completed"));
-    }
-    
- // -----------------------------------------------------------------------------
-// CBTServiceParameterList::AddObjectL
-// -----------------------------------------------------------------------------
-//   
- EXPORT_C void CBTServiceParameterList::AddObjectL( RFile aFile )
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddObjectL()"));
-    
-        //chekc that file handle is correct
-    if(!aFile.SubSessionHandle())
-        {
-        User::Leave( KErrArgument );
-        }
-    RFile file;
-    
-    file.Duplicate(aFile);
-
-    iObjectList.AppendL( file );
-
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::AddObjectL() completed"));
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::XhtmlCount
-// -----------------------------------------------------------------------------
-//
-TInt CBTServiceParameterList::XhtmlCount() const
-    {
-    return iXhtmlList.Count();
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ImageCount
-// -----------------------------------------------------------------------------
-//
-TInt CBTServiceParameterList::ImageCount() const
-    {
-    return iImageList.Count();
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ObjectCount
-// -----------------------------------------------------------------------------
-//
-TInt CBTServiceParameterList::ObjectCount() const
-    {   
-    return iObjectList.Count();
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::XhtmlAt
-// -----------------------------------------------------------------------------
-//
-TBTSUXhtmlParam CBTServiceParameterList::XhtmlAt( TInt aIndex ) const
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::XhtmlAt()"));
-    __ASSERT_DEBUG( aIndex >= 0 && aIndex < XhtmlCount(), BTSUPanic( EBTSUPanicOutOfRange ) );
-
-    TBTSUXhtmlParam param;
-    param.iFileName = iXhtmlList[ aIndex].iFileName;
-    param.iRefObjectList = iXhtmlList[ aIndex].iRefObjectList;
-
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::XhtmlAt() completed"));
-
-    return param;
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ImageAt
-// -----------------------------------------------------------------------------
-//
-TBTSUImageParam CBTServiceParameterList::ImageAtL( TInt aIndex ) const
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::ImageAt()"));    
-    
-    TBTSUImageParam param; 
-    
-    if(aIndex<0 || aIndex> ImageCount() )
- 		{
- 		User::Leave(KErrGeneral);
- 		}
-    
-    param.iFile        = iImageList[aIndex].iFile;
-    param.iMimeType    = iImageList[aIndex].iMimeType;
-    param.iDisplayName = iImageList[aIndex].iDisplayName;
-    param.iPixelSize   = iImageList[aIndex].iPixelSize;
-    param.iFileSize    = iImageList[aIndex].iFileSize;        
-    param.iSend        = iImageList[aIndex].iSend;
-	
-	
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::ImageAt() completed"));
-
-    return param;
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ObjectAt
-// -----------------------------------------------------------------------------
-//
-RFile& CBTServiceParameterList::ObjectAtL( TInt aIndex ) 
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::ObjectAt()"));
-    
-    if(aIndex<0 || aIndex> iObjectList.Count() )
- 		{
- 		User::Leave(KErrGeneral);
- 		}
-    return iObjectList[aIndex];
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::HasAnyReferencedObjects
-// -----------------------------------------------------------------------------
-//
-TBool CBTServiceParameterList::HasAnyReferencedObjects() const
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::HasAnyReferencedObjects()"));
-
-    TBool result = EFalse;
-
-    for ( TInt index = 0; index < iXhtmlList.Count(); index++ )
-        {
-        if ( iXhtmlList[index].iRefObjectList->Count() > 0 )
-            {
-            result = ETrue;
-            break;
-            }
-        }
-
-    FTRACE(FPrint(_L("[BTSU]\t CBTServiceParameterList::HasAnyReferencedObjects() completed with %d"), result ));
-
-    return result;
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ObjectListSizeL
-// -----------------------------------------------------------------------------
-//
-TInt CBTServiceParameterList::ObjectListSizeL() const
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::ObjectListSizeL()"));
- 
-    TInt totalFileSize = 0; 	
-    
-    for ( TInt index = 0; index < iObjectList.Count(); index++ )
-        {                
-        TInt fileSize = 0;
-        iObjectList[index].Size( fileSize );
-        totalFileSize += fileSize;        
-        }
-    return totalFileSize;
-    }
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ImageListSize
-// -----------------------------------------------------------------------------
-//
-TInt CBTServiceParameterList::ImageListSize() const
-    {
-    FLOG(_L("[BTSU]\t CBTServiceParameterList::ImageListSize()"));
-
-    TInt totalFileSize = 0;
-    for ( TInt index = 0; index < iImageList.Count(); index++ )
-        {
-        totalFileSize += iImageList[index].iFileSize;
-        }
-
-    FTRACE(FPrint(_L("[BTSU]\t CBTServiceParameterList::ImageListSize %d"), totalFileSize ));
-    return totalFileSize;
-    }
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::RemoveImageL
-// -----------------------------------------------------------------------------
-//
- 
- void CBTServiceParameterList::RemoveImageL(TInt aIndex)
- 	{
- 	if(aIndex<0 || aIndex> iImageList.Count() )
- 		{
- 		User::Leave(KErrGeneral);
- 		}
- 	
-    delete iImageList[aIndex].iMimeType;
-    delete iImageList[aIndex].iDisplayName;	
-    iImageList.Remove(aIndex);
-    iRemovedImageCount++;
- 	}
- 	
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::RemovedImageCount
-// -----------------------------------------------------------------------------
-// 
- TInt CBTServiceParameterList::RemovedImageCount()
- 	{
- 	return iRemovedImageCount;
- 	}
- 	
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ResetImageHandleL
-// -----------------------------------------------------------------------------
-//  	
-void CBTServiceParameterList::ResetImageHandleL(TInt aIndex)
- 	{
- 	if(aIndex<0 || aIndex> iImageList.Count() )
- 		{
- 		User::Leave(KErrGeneral);
- 		} 	    
-    iImageList[aIndex].iFile=RFile();
- 	}
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ResetObjectHandleL
-// -----------------------------------------------------------------------------
-// 	
-void CBTServiceParameterList::ResetObjectHandleL(TInt aIndex)
- 	{
-    if(aIndex<0 || aIndex> iObjectList.Count() )
- 		{
- 		User::Leave(KErrGeneral);
- 		}
- 	iObjectList[aIndex]=RFile();
- 	}
-
-
-// -----------------------------------------------------------------------------
-// CBTServiceParameterList::ResetObjectHandleL
-// -----------------------------------------------------------------------------
-// 	
-void CBTServiceParameterList::MarkAsSendL(TInt aIndex)
- 	{
-    if(aIndex<0 || aIndex> iImageList.Count() )
- 		{
- 		User::Leave(KErrGeneral);
- 		}
- 	iImageList[aIndex].iSend=ETrue;
- 	}
-
-
-//  End of File