--- /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 );
+ }