connectivitymodules/SeCon/services/ftp/src/sconftp.cpp
branchRCL_3
changeset 17 dbd1c5e08735
parent 0 d0791faffa3f
equal deleted inserted replaced
15:f85613f12947 17:dbd1c5e08735
     1 /*
     1 /*
     2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
   376             EFileWrite | EFileShareExclusive );
   376             EFileWrite | EFileShareExclusive );
   377             file.Close();
   377             file.Close();
   378 
   378 
   379             if( ret == KErrNone )
   379             if( ret == KErrNone )
   380                 {
   380                 {
   381                 delete aObject;
   381                 CreateObexBufObjectL( aObject, aBuffer );
   382                 aObject = CObexBufObject::NewL( NULL );
       
   383                         
       
   384                 if( aBuffer )
       
   385                     {
       
   386                     aBuffer->Reset();
       
   387                     delete aBuffer;
       
   388                     }
       
   389                 
       
   390                 aBuffer = CBufFlat::NewL( KSConBufferSize );
       
   391                 aBuffer->ResizeL( KSConBufferSize );
       
   392                 
       
   393                 TObexFilenameBackedBuffer bufferdetails( *aBuffer, iTempFileName, 
       
   394                 CObexBufObject::EDoubleBuffering );
       
   395                 aObject->SetDataBufL( bufferdetails );
       
   396                 }
   382                 }
   397             }
   383             }
   398         else
   384         else
   399             {
   385             {
   400             LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : not EProprietary" );
   386             LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : not EProprietary" );
   430     
   416     
   431     file.Close();
   417     file.Close();
   432     
   418     
   433     if( ret == KErrNone )
   419     if( ret == KErrNone )
   434         {
   420         {
   435         delete aObject;
   421         CreateObexBufObjectL( aObject, aBuffer );
   436         aObject = CObexBufObject::NewL( NULL );
       
   437                 
       
   438         if( aBuffer )
       
   439             {
       
   440             aBuffer->Reset();
       
   441             delete aBuffer;
       
   442             }
       
   443         
       
   444         aBuffer = CBufFlat::NewL( KSConBufferSize );
       
   445         aBuffer->ResizeL( KSConBufferSize );
       
   446         
       
   447         TObexFilenameBackedBuffer bufferdetails( *aBuffer, iTempFileName, 
       
   448         CObexBufObject::EDoubleBuffering );
       
   449         aObject->SetDataBufL( bufferdetails );
       
   450         
   422         
   451         if( lowMemory )
   423         if( lowMemory )
   452             {
   424             {
   453             // return error. it's up to pccon/ftp plugin howto handle it..
   425             // return error. it's up to pccon/ftp plugin howto handle it..
   454             LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : low memory" );
   426             LOGGER_WRITE( "CSConFTP::PutFileObjectInitL() : low memory" );
   456             }
   428             }
   457         }
   429         }
   458     
   430     
   459     LOGGER_WRITE_1( "CSConFTP::PutFileObjectInitL( CObexBufObject*& aObject, CBufFlat*& aBuffer ) : returned %d", ret );
   431     LOGGER_WRITE_1( "CSConFTP::PutFileObjectInitL( CObexBufObject*& aObject, CBufFlat*& aBuffer ) : returned %d", ret );
   460     return ret;
   432     return ret;
       
   433     }
       
   434 
       
   435 void CSConFTP::CreateObexBufObjectL( CObexBufObject*& aObject, CBufFlat*& aBuffer )
       
   436     {
       
   437     delete aObject;
       
   438     aObject = NULL;
       
   439     aObject = CObexBufObject::NewL( NULL );
       
   440     
       
   441     delete aBuffer;
       
   442     aBuffer = NULL;
       
   443     
       
   444     aBuffer = CBufFlat::NewL( KSConBufferSize );
       
   445     aBuffer->ResizeL( KSConBufferSize );
       
   446     
       
   447     TObexFilenameBackedBuffer bufferdetails( *aBuffer, iTempFileName, 
       
   448                     CObexBufObject::EDoubleBuffering );
       
   449     TRAPD( err, aObject->SetDataBufL( bufferdetails ));
       
   450     if ( err == KErrNoMemory )
       
   451         {
       
   452         LOGGER_WRITE( "KErrNoMemory, Using singe buffer strategy");
       
   453         // If fails, use singe buffer strategy to save RAM
       
   454         TObexFilenameBackedBuffer lowMemBufferdetails( *aBuffer, iTempFileName, 
       
   455                     CObexBufObject::ESingleBuffering );
       
   456         aObject->SetDataBufL( lowMemBufferdetails );
       
   457         }
   461     }
   458     }
   462 
   459 
   463 // -----------------------------------------------------------------------------
   460 // -----------------------------------------------------------------------------
   464 // CSConFTP::PutFileObjectFinalizeL( CObexBufObject*& aObject )
   461 // CSConFTP::PutFileObjectFinalizeL( CObexBufObject*& aObject )
   465 // Stores the relayed file object to inbox or file system.
   462 // Stores the relayed file object to inbox or file system.