connectivitymodules/SeCon/services/ftp/src/sconinboxhandler.cpp
branchRCL_3
changeset 20 4a793f564d72
parent 0 d0791faffa3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/connectivitymodules/SeCon/services/ftp/src/sconinboxhandler.cpp	Wed Sep 01 12:20:56 2010 +0100
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2005-2009 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:  File Transfer Controller implementation
+*
+*/
+
+
+// INCLUDE FILES
+#include <obexutilsmessagehandler.h>
+#include <btmsgtypeuid.h>    // BT Message Uid
+
+#include "sconinboxhandler.h"
+#include "debug.h"
+#include "sconconsts.h"
+
+
+// ============================= MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::NewL()
+// Two-phase constructor
+// -----------------------------------------------------------------------------
+//
+CSConInboxHandler* CSConInboxHandler::NewL()
+    {
+    TRACE_FUNC_ENTRY;
+    CSConInboxHandler* self = new (ELeave) CSConInboxHandler();
+    
+    TRACE_FUNC_EXIT;
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::~CSConInboxHandler()
+// Default destructor
+// -----------------------------------------------------------------------------
+//
+CSConInboxHandler::~CSConInboxHandler()
+    {
+    TRACE_FUNC;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::CreateInboxAttachmentL( CObexBufObject*& aObject,
+//                                              CBufFlat*& aBuffer )
+// Creates an attachment to device's Inbox
+// -----------------------------------------------------------------------------
+//  
+TInt CSConInboxHandler::CreateInboxAttachmentL( CObexBufObject*& aObject,
+                                                CBufFlat*& aBuffer )
+    {
+    TRACE_FUNC_ENTRY;
+    TInt ret( KErrNone );
+    iDrive = GetMessageCenterDriveL();
+    
+    delete aObject;
+    aObject = CObexBufObject::NewL( NULL );
+    
+    iFile = RFile();
+    
+    TRAP( ret, TObexUtilsMessageHandler::CreateInboxAttachmentL( aObject, 
+    KUidMsgTypeBt, iMsvIdParent, iFile ) );
+        
+    if( aBuffer )
+        {
+        aBuffer->Reset();
+        delete aBuffer;
+        }
+        
+    aBuffer = CBufFlat::NewL( KSConBufferSize );
+    aBuffer->ResizeL( KSConBufferSize );
+    
+    TObexRFileBackedBuffer bufferdetails( *aBuffer, iFile, 
+    CObexBufObject::EDoubleBuffering );
+    aObject->SetDataBufL( bufferdetails );
+    LOGGER_WRITE_1( "CSConInboxHandler::CreateInboxAttachmentL() : returned %d", ret );
+    return ret;
+    }
+    
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::SaveObjToInboxL( CObexBufObject*& aObject )
+// Saves the object to the Inbox
+// -----------------------------------------------------------------------------
+//  
+TInt CSConInboxHandler::SaveObjToInboxL( CObexBufObject*& aObject )
+    {
+    TRACE_FUNC_ENTRY;
+    TInt ret( KErrNone );
+    
+    if( iDrive == EDriveE )
+        {
+        ret = TObexUtilsMessageHandler::GetMmcFileSystemStatus();
+        LOGGER_WRITE_1( "GetMmcFileSystemStatus returned %d", ret );
+        }
+    else
+        {
+        ret = TObexUtilsMessageHandler::GetFileSystemStatus();
+        LOGGER_WRITE_1( "GetFileSystemStatus returned %d", ret );
+        }
+       
+    if( ret == KErrNone )
+        {
+        TInt tempDrive = GetMessageCenterDriveL();
+    
+        if( tempDrive == iDrive )
+            {
+            LOGGER_WRITE_1( "before SaveObjToInboxL in SaveObjToInboxL %d", ret );
+            TRAP( ret, TObexUtilsMessageHandler::SaveObjToInboxL( aObject, 
+            iFile, iMsvIdParent ) );
+            LOGGER_WRITE_1( "after SaveObjToInboxL in SaveObjToInboxL %d", ret );
+            }
+        else
+            {
+            ret = KErrGeneral;
+            }   
+            
+        if( ret != KErrNone )
+            {
+            LOGGER_WRITE_1( "before RemoveInboxEntriesL in SaveObjToInboxL %d", ret );
+            TObexUtilsMessageHandler::RemoveInboxEntriesL( aObject, 
+            iMsvIdParent );
+            LOGGER_WRITE_1( "after RemoveInboxEntriesL in SaveObjToInboxL %d", ret );
+            }
+        }
+        
+    LOGGER_WRITE_1( "CSConInboxHandler::SaveObjToInboxL( CObexBufObject* aObject ) : returned %d", ret );
+    return ret;
+    }
+    
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::AbortInboxOperation( CObexBufObject*& aObject )
+// Aborts the storing operation
+// -----------------------------------------------------------------------------
+//  
+TInt CSConInboxHandler::AbortInboxOperation( CObexBufObject*& aObject )
+    {
+    TRACE_FUNC_ENTRY;
+    TInt ret( KErrNone );
+    TRAP( ret, TObexUtilsMessageHandler::RemoveInboxEntriesL( aObject, 
+    iMsvIdParent ) );
+    LOGGER_WRITE_1( "CSConInboxHandler::AbortInboxOperation() returned %d", ret );
+    return ret;
+    }
+    
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::GetMessageCenterDriveL()
+// Returns the current message center drive
+// -----------------------------------------------------------------------------
+//  
+TInt CSConInboxHandler::GetMessageCenterDriveL()
+    {
+    TRACE_FUNC_ENTRY;
+    TInt drive;
+    CMsvSession* msvSession = CMsvSession::OpenSyncL( *this );
+    CleanupStack::PushL( msvSession );
+    TDriveUnit driveUnit = msvSession->CurrentDriveL();
+    drive = driveUnit.operator TInt();
+    CleanupStack::PopAndDestroy( msvSession );
+    LOGGER_WRITE_1( "CSConInboxHandler::GetMessageCenterDriveL() returned %d", drive );
+    return drive;
+    }
+
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::HandleSessionEventL( TMsvSessionEvent aEvent, 
+//                              TAny* aArg1, 
+//                              TAny* aArg2, 
+//                              TAny* aArg3 )
+// Implementation of MMsvSessionObserver::HandleSessionEventL
+// -----------------------------------------------------------------------------
+//      
+void CSConInboxHandler::HandleSessionEventL( TMsvSessionEvent /*aEvent*/, 
+                                TAny* /*aArg1*/, 
+                                TAny* /*aArg2*/, 
+                                TAny* /*aArg3*/ )
+    {
+    }
+    
+// -----------------------------------------------------------------------------
+// CSConInboxHandler::CSConInboxHandler()
+// Default constructor
+// -----------------------------------------------------------------------------
+//  
+CSConInboxHandler::CSConInboxHandler()
+    {
+    }   
+
+// End of file
+