--- 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