harvester/server/src/harvesterserversession.cpp
changeset 0 c53acadfccc6
child 15 3cebc1a84278
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/harvester/server/src/harvesterserversession.cpp	Mon Jan 18 20:34:07 2010 +0200
@@ -0,0 +1,214 @@
+/*
+* Copyright (c) 2006-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:  Harvester server session*
+*/
+
+// INCLUDE FILES
+#include "harvesterserversession.h"
+#include "harvestercommon.h"
+#include "harvesterlog.h"
+
+// ========================= MEMBER FUNCTIONS ==================================
+
+// ---------------------------------------------------------------------------
+// NewL
+// ---------------------------------------------------------------------------
+//
+CHarvesterServerSession* CHarvesterServerSession::NewL( CHarvesterServer& aServer )
+	{
+    WRITELOG( "CHarvesterServerSession::NewL()" );
+    
+    CHarvesterServerSession* self = CHarvesterServerSession::NewLC( aServer );
+    CleanupStack::Pop( self );
+    return self;
+	}
+
+// ---------------------------------------------------------------------------
+// NewLC
+// ---------------------------------------------------------------------------
+//
+CHarvesterServerSession* CHarvesterServerSession::NewLC( CHarvesterServer& aServer )
+	{
+    WRITELOG( "CHarvesterServerSession::NewLC()" );
+    
+    CHarvesterServerSession* self = new ( ELeave ) CHarvesterServerSession( aServer );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+	}
+
+// ---------------------------------------------------------------------------
+// ConstructL
+// ---------------------------------------------------------------------------
+//
+void CHarvesterServerSession::ConstructL()
+	{
+    WRITELOG( "CHarvesterServerSession::ConstructL()" );
+
+	}
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CHarvesterServerSession::CHarvesterServerSession( CHarvesterServer& aServer )
+	: iServer( aServer )
+	{
+    WRITELOG( "CHarvesterServerSession::CHarvesterServerSession()" );
+	}
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CHarvesterServerSession::~CHarvesterServerSession()
+	{
+    WRITELOG( "CHarvesterServerSession::~CHarvesterServerSession()" );
+	}
+
+// ---------------------------------------------------------------------------
+// ServiceL
+// ---------------------------------------------------------------------------
+//
+void CHarvesterServerSession::ServiceL( const RMessage2& aMessage )
+	{
+    WRITELOG( "CHarvesterServerSession::ServiceL()" );	
+    
+    /* Command can't be negative */
+    if ( aMessage.Function() < 0 )
+        {
+        User::Leave( aMessage.Function() );
+        }
+    
+    switch ( aMessage.Function() )
+   		{
+		case EResumeHarvester:
+			{
+			WRITELOG( "CHarvesterServerSession::ServiceL() - EResumeHarvester command received" );
+			iServer.Resume( aMessage );	
+			}
+		break;
+		
+		case EPauseHarvester:
+			{
+			WRITELOG( "CHarvesterServerSession::ServiceL() - EPauseHarvester command received" );
+		    iServer.Pause( aMessage );			
+			}
+		break;
+			
+		case EHarvestFile:
+			{
+#ifdef _DEBUG
+			WRITELOG( "CHarvesterServerSession::ServiceL() - EHarvestFile command received" );
+			WRITELOG1( "CHarvesterServerSession::ServiceL() - EHarvestFile, param 0 size: %d", aMessage.GetDesLength(0) );
+			WRITELOG1( "CHarvesterServerSession::ServiceL() - EHarvestFile, param 1 size: %d", aMessage.GetDesLength(1) );
+
+			WRITELOG( "CHarvesterServerSession::ServiceL() - before harvest file" );
+#endif
+		    iServer.HarvestFile( aMessage );
+			WRITELOG( "CHarvesterServerSession::ServiceL() - after harvest file" );
+			}
+		break;
+			
+        case ERegisterProcessOrigin:
+            {
+            WRITELOG( "CHarvesterServerSession::ServiceL() - ERegisterProcessOrigin command received" );
+            iServer.RegisterProcessOrigin( aMessage );          
+            }
+        break;
+
+        case EUnregisterProcessOrigin:
+            {
+            WRITELOG( "CHarvesterServerSession::ServiceL() - EUnregisterProcessOrigin command received" );
+            iServer.UnregisterProcessOrigin( aMessage );          
+            }
+        break;
+		
+		case ERegisterHarvestComplete:
+			{
+			WRITELOG( "CHarvesterServerSession::ServiceL() - ERequestHarvestComplete command received" );
+			TInt error = iServer.RegisterHarvestComplete( *this, aMessage );
+			
+			// complete message if registering failed
+			if ( error != KErrNone && !aMessage.IsNull())
+	        	{
+	        	aMessage.Complete( error );
+	        	}
+			}
+		break;
+		
+		case EUnregisterHarvestComplete:
+			{
+			WRITELOG( "CHarvesterServerSession::ServiceL() - EUnregisterHarvestComplete command received" );
+			TInt error = iServer.UnregisterHarvestComplete( *this );
+			
+			// complete message if registering failed
+			if ( !aMessage.IsNull() )
+	        	{
+	        	aMessage.Complete( error );
+	        	}
+			}
+		break;
+		
+		case ERegisterHarvesterEvent:
+			{
+			WRITELOG( "CHarvesterServerSession::ServiceL() - ERegisterHarvesterEvent command received" );
+			iServer.RegisterHarvesterEvent( aMessage );
+			}
+		break;
+		
+		case EUnregisterHarvesterEvent:
+			{
+			WRITELOG( "CHarvesterServerSession::ServiceL() - EUnregisterHarvesterEvent command received" );
+			iServer.UnregisterHarvesterEvent( aMessage );
+			}
+		break;
+		
+	    case EHarvestFileWithUID:
+	        {
+#ifdef _DEBUG
+	        WRITELOG( "CHarvesterServerSession::ServiceL() - EHarvestFileWithUID command received" );
+	        WRITELOG1( "CHarvesterServerSession::ServiceL() - EHarvestFileWithUID, param 0 size: %d", aMessage.GetDesLength(0) );
+	        WRITELOG1( "CHarvesterServerSession::ServiceL() - EHarvestFileWithUID, param 1 size: %d", aMessage.GetDesLength(1) );
+
+	        WRITELOG( "CHarvesterServerSession::ServiceL() - before harvest file" );
+#endif
+	        iServer.HarvestFileWithUID( aMessage );
+	        WRITELOG( "CHarvesterServerSession::ServiceL() - after harvest file" );
+	        }
+	    break;
+		
+        default:
+			{
+#ifdef _DEBUG
+			WRITELOG1( "CHarvesterServerSession::ServiceL() - Invalid Call!!! Number: %d", aMessage.Function() );
+#endif
+			_LIT( KMessage, "Command not supported!" );
+			iServer.PanicClient( aMessage, KErrNotSupported, KMessage );
+			}
+		break;
+		}
+	}
+
+void CHarvesterServerSession::Disconnect(const RMessage2 &aMessage)
+	{
+	//just make sure the server is cleaned after client crash
+	WRITELOG( "CHarvesterServerSession::Disconnect()" );
+	
+	iServer.UnregisterHarvestComplete( *this );
+	
+	// Overridden CSession2 Disconnect, Message must completed
+	// via CSession2::Disconnect
+	CSession2::Disconnect( aMessage );
+	}