phoneclientserver/phoneserver/Src/Messenger/CPhSrvSubSessionMessenger.cpp
changeset 46 2fa1fa551b0b
parent 42 35488577e233
child 48 78df25012fda
--- a/phoneclientserver/phoneserver/Src/Messenger/CPhSrvSubSessionMessenger.cpp	Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,404 +0,0 @@
-/*
-* Copyright (c) 2004-2005 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:  Sub Session Messenger.
-*                The stub version of this file can be found from file
-*                CPhSrvSubSessionMessengerStub.cpp
-*
-*/
-
-
-
-// INCLUDE FILES
-#include    "cphsrvsubsessionmessenger.h" 
-#include    "cphsrvsession.h" 
-#include    "cphsrvserver.h" 
-#include    <phclttypes.h> 
-#include    "mphsrvmessengernegotiators.h" 
-#include    "phsrvmessengertypes.h" 
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::CPhSrvSubSessionMessenger
-// 
-// Constructor.
-// -----------------------------------------------------------------------------
-//
-CPhSrvSubSessionMessenger::CPhSrvSubSessionMessenger( 
-    CPhSrvSession& aSession )
-:   CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeMessenger )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::~CPhSrvSubSessionMessenger
-// 
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CPhSrvSubSessionMessenger::~CPhSrvSubSessionMessenger()
-    {
-    Clean();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::NewL
-// 
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CPhSrvSubSessionBase* CPhSrvSubSessionMessenger::NewL(
-    CPhSrvSession& aSession )
-    {
-    // Just to make sure that the negotiator will exist.
-    aSession.PhoneServer().MessengerNegotiatorL();
-
-    CPhSrvSubSessionBase* self = 
-        new( ELeave ) CPhSrvSubSessionMessenger( aSession );
-    
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::PhSrvMessageDecoderCanProcessMessage
-// 
-// Framework function. Returns ETrue for the op codes that
-// this subsession can handle.
-// -----------------------------------------------------------------------------
-//
-TBool CPhSrvSubSessionMessenger::PhSrvMessageDecoderCanProcessMessage( 
-    TInt aFunction )
-    {
-    switch( aFunction )
-        {
-        case EPhoneServerMessengerSubSessionOpen:
-        case EPhoneServerMessengerSubSessionClose:
-        case EPhoneServerMessengerSubSessionConstruct:
-        case EPhoneServerMessengerSubSessionReceive:
-        case EPhoneServerMessengerSubSessionSend:
-        case EPhoneServerMessengerSubSessionSkip:
-        case EPhoneServerMessengerSubSessionCancel:
-            return ETrue;
-            
-        default:
-            return EFalse;
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::PhSrvMessageProcessorHandleMessageL
-// 
-// Framework function. Handle any op-codes here.
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::PhSrvMessageProcessorHandleMessageL( 
-    const RMessage2& aMessage )
-    {
-    TBool permissionStatus ( EFalse );
-     
-    // Check needed capabilities    
-    TBool hasCapWriteDeviceData( EFalse );                  
-    hasCapWriteDeviceData = aMessage.HasCapability( ECapabilityWriteDeviceData );            
-
-    switch( aMessage.Function() )
-        {
-        case EPhoneServerMessengerSubSessionClose:
-            CmdSubSessionClose( aMessage );
-            permissionStatus = ETrue;
-            break;
-
-        case EPhoneServerMessengerSubSessionConstruct:
-            CmdSubSessionMessengerConstructL( aMessage );
-            permissionStatus = ETrue;
-            break;
-
-        case EPhoneServerMessengerSubSessionReceive:
-            if ( hasCapWriteDeviceData )
-                {  
-                CmdSubSessionMessengerReceive( aMessage );
-                permissionStatus = ETrue;
-                }
-            break;
-        case EPhoneServerMessengerSubSessionSend:
-            if ( hasCapWriteDeviceData )
-                {  
-                CmdSubSessionMessengerSend( aMessage );
-                permissionStatus = ETrue;
-                }
-            break;
-        case EPhoneServerMessengerSubSessionSkip:
-            if ( hasCapWriteDeviceData )
-                {  
-                CmdSubSessionMessengerSkip( aMessage );
-                permissionStatus = ETrue;
-                }
-            break;
-        case EPhoneServerMessengerSubSessionCancel:
-            if ( hasCapWriteDeviceData )
-                {  
-                CmdSubSessionMessengerCancel( aMessage );
-                permissionStatus = ETrue;
-                }
-            break;
-
-        default:
-            PhoneSession().PanicClient(
-                aMessage,
-                EPhCltServerInitiatedPanicInvalidRequest );
-            break;
-        }
-        
-    // If caps are not ok
-    if ( !permissionStatus )
-        {        
-        aMessage.Complete( KErrPermissionDenied );
-        }         
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::CmdSubSessionClose
-// 
-// Close the sub-session.
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::CmdSubSessionClose( 
-    const RMessage2& aMessage )
-    {
-    Clean();
-
-    PhoneSession().CloseSubSession( aMessage );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::CmdSubSessionMessengerConstructL
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::CmdSubSessionMessengerConstructL( 
-    const RMessage2& aMessage )
-    {
-    TPhCltMessengerParameters parameters;
-
-    // Check the Construct parameters.
-    TPckg< TPhCltMessengerParameters > recParPckg( 
-        parameters );
-    Read(
-        aMessage,
-        0,
-        recParPckg );
-
-    // Ask the messenger negotiator to reserve all needed space
-    // for this subsession.
-    MPhSrvMessengerNegotiator& messengerNegotiator = GetMessengerNegotiator();
-
-    messengerNegotiator.NegotiatorRequestConstructL( 
-        *this,
-        parameters,
-        aMessage );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::CmdSubSessionMessengerReceive
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::CmdSubSessionMessengerReceive( 
-    const RMessage2& aMessage )
-    {
-
-    TPhCltMessengerParameters parameters;
-
-    // Check the Receive parameters.
-    TPckg< TPhCltMessengerParameters > recParPckg( 
-        parameters );
-    Read(
-        aMessage,
-        0,
-        recParPckg );
-
-    // This is Receive request.
-    parameters.iMessengerCommand = EPhCltMesCommandReceive;
-
-    // Ask the messenger negotiator to handle this request.
-    ForwardRequest( 
-        *this,
-        parameters,
-        aMessage );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::CmdSubSessionMessengerSend
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::CmdSubSessionMessengerSend( 
-    const RMessage2& aMessage )
-    {
-    TPhCltMessengerParameters parameters;
-
-    // Check the Send parameters.
-    TPckg< TPhCltMessengerParameters > sendParPckg( 
-        parameters );
-    Read(
-        aMessage,
-        0,
-        sendParPckg );
-
-    // This is Send request.
-    parameters.iMessengerCommand = EPhCltMesCommandSend;
-
-    // Ask the messenger negotiator to handle this request.
-    ForwardRequest( 
-        *this,
-        parameters,
-        aMessage );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::CmdSubSessionMessengerSkip
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::CmdSubSessionMessengerSkip( 
-    const RMessage2& aMessage )
-    {
-    TPhCltMessengerParameters parameters;
-
-    // This is Skip request.
-    parameters.iMessengerCommand = EPhCltMesCommandSkip;
-
-    // Ask the messenger negotiator to handle this request.
-    ForwardRequest( 
-        *this,
-        parameters,
-        aMessage );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::CmdSubSessionMessengerCancel
-// 
-// Handle command handler client's cancel request.
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::CmdSubSessionMessengerCancel( 
-    const RMessage2& aMessage )
-    {
-    TInt returnValue = KErrArgument;
-
-    TPhCltMessengerParameters parameters;
-
-    // Check the Cancel parameters.
-    TPckg< TPhCltMessengerParameters > recParPckg( 
-        parameters );
-    Read(
-        aMessage,
-        0,
-        recParPckg );
-
-    TPhCltMessengerRequest request = parameters.iCancelRequest;
-
-
-    TPhCltMessengerCommand mesCommand = EPhCltMesCommandUnknown;
-    if ( request == EPhCltMesRequestReceive)
-        {
-        mesCommand = EPhCltMesCommandReceive;
-        }
-    else if ( request == EPhCltMesRequestSend )
-        {
-        mesCommand = EPhCltMesCommandSend;
-        }
-
-    // Perform cancel only if that was valid request.
-    if ( mesCommand != EPhCltMesCommandUnknown )
-        {
-        // Ask the messenger negotiator to cancel the pending request
-        // for this subsession.
-        MPhSrvMessengerNegotiator& messengerNegotiator = 
-            GetMessengerNegotiator();
-
-        messengerNegotiator.NegotiatorRequestCancel( *this, mesCommand );
-
-        returnValue = KErrNone;
-        }
-    aMessage.Complete( returnValue );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::GetMessengerNegotiator
-// 
-// Return the messenger negotiator.
-// -----------------------------------------------------------------------------
-//
-MPhSrvMessengerNegotiator& CPhSrvSubSessionMessenger::GetMessengerNegotiator()
-    {
-    // Messenger negotiator created already in NewL.
-    return PhoneSession().PhoneServer().MessengerNegotiator();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::ForwardRequest
-// 
-// Forward request to negotiator.
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::ForwardRequest(
-    CPhSrvSubSessionBase& aSubSession,
-    const TPhCltMessengerParameters& aParameters,
-    const RMessage2& aMessage )
-    {
-    // Ask the messenger negotiator to handle this request.
-    MPhSrvMessengerNegotiator& messengerNegotiator = GetMessengerNegotiator();
-
-    messengerNegotiator.NegotiatorRequest( 
-        aSubSession,
-        aParameters,
-        aMessage );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPhSrvSubSessionMessenger::Clean
-// 
-// Clean the negotiator side.
-// -----------------------------------------------------------------------------
-//
-void CPhSrvSubSessionMessenger::Clean()
-    {
-    // Ask the messenger negotiator to release all reserved space
-    // for this subsession.
-    MPhSrvMessengerNegotiator& messengerNegotiator = GetMessengerNegotiator();
-
-    messengerNegotiator.NegotiatorRequestDelete( *this );
-    }
-
-
-// End of File