convergedconnectionhandler/cchserver/src/cchsubsession.cpp
branchRCL_3
changeset 21 f742655b05bf
parent 20 65a3ef1d5bd0
child 22 d38647835c2e
--- a/convergedconnectionhandler/cchserver/src/cchsubsession.cpp	Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,398 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:  CCCHSubsession implementation
-*
-*/
-
-
-// INCLUDE FILES
-#include <cchclientserver.h>
-
-#include "cchlogger.h"
-#include "cchsubsession.h"
-#include "cchserverbase.h"
-#include "cchrequeststorage.h"
-#include "cchpluginhandler.h"
-#include "cchservicehandler.h"
-
-// EXTERNAL DATA STRUCTURES
-// None
-
-// EXTERNAL FUNCTION PROTOTYPES
-// None
-
-// CONSTANTS
-// None
-
-// MACROS
-// None
-
-// LOCAL CONSTANTS AND MACROS
-// None
-
-// MODULE DATA STRUCTURES
-// None
-
-// LOCAL FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-// None
-
-// ============================= LOCAL FUNCTIONS =============================
-
-// ============================ MEMBER FUNCTIONS =============================
-
-// ---------------------------------------------------------------------------
-// CCCHSubsession::CCCHSubsession
-// C++ default constructor can NOT contain any code, that might leave.
-// ---------------------------------------------------------------------------
-//
-CCCHSubsession::CCCHSubsession( CCCHServerBase& aServer ) :
-    iServer( aServer ),
-    iMessage( NULL ),
-    iQueueEvents( EFalse )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CCCHSubsession::NewL
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CCCHSubsession* CCCHSubsession::NewL( CCCHServerBase& aServer )
-    {
-    CCCHSubsession* self = CCCHSubsession::NewLC( aServer );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CCCHSubsession::NewLC
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CCCHSubsession* CCCHSubsession::NewLC( CCCHServerBase& aServer )
-    {
-    CCCHSubsession* self = new (ELeave)CCCHSubsession( aServer );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// Destructor
-CCCHSubsession::~CCCHSubsession()
-    {
-    iServer.RequestStorage().RemoveRequestsBySession( this );
-    iServer.RequestStorage().RemoveSession( this );
-    iEventQueue.Close();
- 
-    delete iRegisterMessage;
-    delete iMessage;            
-    }
-
-
-// ---------------------------------------------------------------------------
-// CCCHSubsession::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CCCHSubsession::ConstructL(  )
-    {
-    CCHLOGSTRING( "CCCHSubsession::ConstructL: IN" );
-    
-    iServer.RequestStorage().AddSession( this );
-    
-    CCHLOGSTRING( "CCCHSubsession::ConstructL: OUT" );
-    }
-
-// ---------------------------------------------------------------------------
-// CCCHSubsession::ServiceEventOccured
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CCCHSubsession::ServiceEventOccured(
-    TServiceStatus aNewStatus )
-    {
-    CCHLOGSTRING( "CCCHSubsession::ServiceEventOccured: IN" );
-    //if are we queuing
-    if( iQueueEvents )
-        {
-        //check if we can accept this event
-        if ( 0 == iSubscribedService.iServiceId ||        // all services
-        		iSubscribedService.iServiceId == aNewStatus.ServiceId() )  // specified service
-            {
-            if ( iSubscribedService.iType == ECCHUnknown ||   
-            		iSubscribedService.iType == aNewStatus.Type() )        // subservice specified
-                {
-                iEventQueue.Append( aNewStatus );
-                CompleteMessage( );
-                }
-            }
-        }
-    
-    CCHLOGSTRING( "CCCHSubsession::ServiceEventOccured: OUT" );
-    }
-
-// ---------------------------------------------------------------------------
-// CCCHSubsession::CompleteMessage
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CCCHSubsession::CompleteMessage( )
-    {
-    CCHLOGSTRING( "CCCHSubsession::CompleteMessage: IN" );
-    //if there is pending SubscribeToEvents and we have something in queue
-    if( iMessage && 0 < iEventQueue.Count() )
-        {
-        TInt error( KErrNone );
-        TPckgBuf<TServiceStatus> serviceStatus;
-        
-        // while we append to queue, we consume from the start (fifo)
-        serviceStatus() = iEventQueue[ 0 ];   
-        CCHLOGSTRING2( "CCCHSubsession::CompleteMessage: type  : %d", serviceStatus().Type() );
-        CCHLOGSTRING2( "CCCHSubsession::CompleteMessage: state : %d", serviceStatus().iState );
-        // Write status to IPC message
-        TRAP( error, iMessage->WriteL( 2, serviceStatus ) );    
-        
-        //complete & delete message 
-        iMessage->Complete( error );
-        delete iMessage;
-        iMessage = NULL;
-        
-        // Remove consumed event from queue
-        iEventQueue.Remove( 0 );
-        }
-    CCHLOGSTRING( "CCCHSubsession::CompleteMessage: OUT" );
-    } 
-       
-// ---------------------------------------------------------------------------
-// CCCHSubsession::ServiceL
-// Handles request received from client.
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CCCHSubsession::ServiceL( const RMessage2& aMessage )
-    {
-    CCHLOGSTRING( "CCCHSubsession::ServiceL: IN" );
-    TInt command = aMessage.Function();
-    switch ( command )
-        {
-        case ECCHServerRegister:
-            {
-            if( !iRegisterMessage )
-                {
-                iRegisterMessage = new (ELeave) RMessage2( aMessage );
-                }
-            
-            break;
-            }
-            
-        case ECCHServerRegisterCancel:
-            {
-            if( iRegisterMessage )
-                {
-                iRegisterMessage->Complete( KErrCancel );
-                delete iRegisterMessage;
-                iRegisterMessage = NULL;
-                }
-            aMessage.Complete( KErrNone );
-            break;
-            }
-        case ECCHSubscribeToEvents:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHSubscribeToEvents" );
-            iMessage = new (ELeave) RMessage2( aMessage );
-            //set the service (or set of services) we are interested in
-            iSubscribedService.iServiceId = iMessage->Int0();
-            iSubscribedService.iType = static_cast<TCCHSubserviceType>(
-                                                    iMessage->Int1() );
-            //start queuing
-            iQueueEvents = ETrue;
-            //try to complete message
-            CompleteMessage( );
-            }
-            break;
-        case ECCHSubscribeToEventsCancel:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHSubscribeToEventsCancel" );
-            //if ECCHSubscribeToEvents request is pending, complete & delete it
-            if( iMessage )
-                {
-                iMessage->Complete( KErrCancel );    
-                delete iMessage;
-                iMessage = NULL;
-                }
-            // Complete cancel request
-            aMessage.Complete( KErrNone );
-            //stop & reset the queue
-            iQueueEvents = EFalse;
-            iEventQueue.Reset();
-            }
-            break;
-        case ECCHGetServices:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHGetServices" );
-            iServer.RequestStorage().AddRequestL( ECCHGetServices,
-                aMessage, this );
-            }
-            break;
-        case ECCHGetServicesCancel:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHGetServicesCancel" );
-            iServer.RequestStorage().CompleteRequest( ECCHGetServices,
-                this, KErrCancel );
-            aMessage.Complete( KErrNone );
-            }
-            break;
-        case ECCHGetServiceState:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHGetServiceState" );
-            TInt err( KErrNone );
-            err = iServer.ServiceHandler().GetServiceState( aMessage );
-            aMessage.Complete( err );
-            }
-            break;
-        case ECCHEnableService:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHEnableService" );
-            iServer.RequestStorage().AddRequestL( ECCHEnableService,
-                aMessage, this );
-            }
-            break;
-        case ECCHEnableServiceCancel:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHEnableServiceCancel" );
-            iServer.RequestStorage().CompleteRequest( ECCHEnableService,
-                this, KErrCancel );
-            aMessage.Complete( KErrNone );
-            }
-            break;
-        case ECCHDisableService:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHDisableService" );
-            iServer.RequestStorage().AddRequestL( ECCHDisableService,
-                aMessage, this );
-            }
-            break;
-        case ECCHDisableServiceCancel:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHDisableServiceCancel" );
-            iServer.RequestStorage().CompleteRequest( ECCHDisableService,
-                this, KErrCancel );
-            aMessage.Complete( KErrNone );
-            }
-            break;
-        case ECCHGetServiceInfo:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHGetServiceInfo" );
-            TInt err( KErrNone );
-            err = iServer.ServiceHandler().GetServiceInfo( aMessage );
-            aMessage.Complete( err );
-            }
-            break;
-        case ECCHGetPreferredService:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHGetPreferredService" );
-            aMessage.Complete( KErrNotSupported );
-            }
-            break;
-        case ECCHSetConnectionInfo:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHSetConnectionInfo" );
-            iServer.RequestStorage().AddRequestL( ECCHSetConnectionInfo,
-                aMessage, this );
-            }
-            break;
-        case ECCHSetConnectionInfoCancel:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHSetConnectionInfoCancel" );
-            iServer.RequestStorage().CompleteRequest( ECCHSetConnectionInfo,
-                this, KErrCancel );
-            aMessage.Complete( KErrNone );
-            }
-            break;
-        case ECCHGetConnectionInfo:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHGetConnectionInfo" );
-            iServer.RequestStorage().AddRequestL( ECCHGetConnectionInfo,
-                aMessage, this );
-            }
-            break;
-        case ECCHGetConnectionInfoCancel:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHGetConnectionInfoCancel" );
-            iServer.RequestStorage().CompleteRequest( ECCHGetConnectionInfo,
-                this, KErrCancel );
-            aMessage.Complete( KErrNone );
-            }
-            break;
-        case ECCHServiceCount:
-            {
-            iServer.ServiceHandler().ServiceCountL( aMessage );
-            aMessage.Complete( KErrNone );
-            }
-            break;
-        case ECCHReserveService:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHReserveService" );
-            TInt err( KErrNone );
-            err = iServer.ServiceHandler().ReserveService( aMessage );
-            aMessage.Complete( err );
-            }
-            break;
-        case ECCHFreeService:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHFreeService" );
-            TInt err( KErrNone );
-            err = iServer.ServiceHandler().FreeService( aMessage );
-            aMessage.Complete( err );
-            }
-            break;
-        case ECCHIsReserved:
-            {
-            CCHLOGSTRING
-                ( "CCCHSubsession::ServiceL :ECCHIsReserved" );
-            iServer.ServiceHandler().IsReserved( aMessage );
-            aMessage.Complete( KErrNone );
-            }
-            break;
-        default:
-            {
-            CCHLOGSTRING( "CCCHSubsession::ServiceL :ECCHBadRequest" );
-            iServer.PanicClient( aMessage, ECCHBadRequest );
-            }
-        }
-    CCHLOGSTRING( "CCCHSubsession::ServiceL: OUT" );
-    }
-
-// ========================== OTHER EXPORTED FUNCTIONS =======================
-
-//  End of File