dosservices/commondsy/src/CDSYEventManager.cpp
author Tapani Kanerva <Tapani.Kanerva@nice.fi>
Thu, 11 Nov 2010 14:35:29 +0000
branchRCL_3
changeset 86 79105dd92dc2
parent 0 4e1aa6a622a0
permissions -rw-r--r--
Export meaningful default HWRM policy files, to fix Bug 3852

/*
* Copyright (c) 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:  Implementation of CCDSYEventManager class
*
*/




// INCLUDE FILES 
#include <doseventmanager.h>
#include "CDSYEventManager.h"
#include "CDSYMessage.h"
#include "CDSYController.h"
#include "CDSYMessageIDs.h"
#include "CDSYMessageStructures.h"
#include "CDSYFactory.h"
#include "commondsy_debug.h"



// EXTERNAL DATA STRUCTURES
// EXTERNAL FUNCTION PROTOTYPES  
// CONSTANTS
// MACROS
// LOCAL CONSTANTS AND MACROS
// MODULE DATA STRUCTURES
// LOCAL FUNCTION PROTOTYPES
// FORWARD DECLARATIONS



// ============================= LOCAL FUNCTIONS ===============================



// ============================ MEMBER FUNCTIONS ===============================



// -----------------------------------------------------------------------------
// CCDSYEventManager::CCDSYEventManager
// -----------------------------------------------------------------------------
CCDSYEventManager::CCDSYEventManager( CCDSYController& aCDSYController, CCDSYFactory& aCDSYFactory )
: iCDSYController( aCDSYController )
, iCDSYFactory( aCDSYFactory )
    {
    COM_TRACE_2( "CDSY - CCDSYEventManager::CCDSYEventManager(0x%x, 0x%x)", &aCDSYController, &aCDSYFactory );

    COM_TRACE_( "CDSY - CCDSYEventManager::CCDSYEventManager - return void" );
    }



// -----------------------------------------------------------------------------
// CCDSYEventManager::~CCDSYEventManager
// -----------------------------------------------------------------------------
CCDSYEventManager::~CCDSYEventManager()
    {
    COM_TRACE_( "CDSY - CCDSYEventManager::~CCDSYEventManager()" );
    iCDSYController.UnregisterServiceLogic( KCDSYMsgGroup, KCDSYEventGeneral, this );
    COM_TRACE_( "CDSY - CCDSYEventManager::~CCDSYEventManager - return void" );
    }

// -----------------------------------------------------------------------------
// CCDSYEventManager::ConstructL
// -----------------------------------------------------------------------------
void CCDSYEventManager::ConstructL()
    {
    COM_TRACE_( "CDSY - CCDSYEventManager::ConstructL()" );
    iCDSYController.RegisterServiceLogicL( KCDSYMsgGroup, KCDSYEventGeneral, this );
    COM_TRACE_( "CDSY - CCDSYEventManager::ConstructL - return void" );
    }

// -----------------------------------------------------------------------------
// CCDSYEventManager::NewL
// -----------------------------------------------------------------------------
CCDSYEventManager* CCDSYEventManager::NewL( CCDSYController& aCDSYController, CCDSYFactory& aCDSYFactory )
    {
    COM_TRACE_2( "CDSY - CCDSYEventManager::NewL(0x%x, 0x%x)", &aCDSYController, &aCDSYFactory );

    CCDSYEventManager* dsyEventManager = new ( ELeave ) CCDSYEventManager( aCDSYController, aCDSYFactory );
    CleanupStack::PushL( dsyEventManager );
    dsyEventManager->ConstructL();
    CleanupStack::Pop( dsyEventManager );
        
    COM_TRACE_1( "CDSY - CCDSYEventManager::NewL - return 0x%x", dsyEventManager );
    return dsyEventManager;
    }

// -----------------------------------------------------------------------------
// CCDSYEventManager::ProcessMessageL
// -----------------------------------------------------------------------------
void CCDSYEventManager::ProcessMessageL( TCDSYMessage& aCDSYMessage )
    {
    COM_TRACE_1( "CDSY - CCDSYEventManager::ProcessMessageL(0x%x)", &aCDSYMessage );

    TRACE_ASSERT( aCDSYMessage.Group() == KCDSYMsgGroup );
    TRACE_ASSERT( iCDSYFactory.EventManager() != NULL );

    if ( iCDSYFactory.EventManager() != NULL )
        {
        switch ( aCDSYMessage.ID() )
            {
            case KCDSYEventGeneral:

                TRACE_ASSERT( aCDSYMessage.Data()->Length() == sizeof ( TCDSYMsgDataGeneralEvent ) );
                API_TRACE_3( "CDSY - CCDSYEventManager::ProcessMessageL - DSY event fired:GeneralEvent(0x%x, 0x%x, 0x%x)", ( ( ( TCDSYMsgDataGeneralEvent* )( aCDSYMessage.Data()->Ptr() ) )->iEvent ),
                                                                                                                        ( ( TAny* )( ( TCDSYMsgDataGeneralEvent* )( aCDSYMessage.Data() )->Ptr() )->iParameter ),
                                                                                                                        ( ( ( TCDSYMsgDataGeneralEvent* )( aCDSYMessage.Data()->Ptr() ) )->iParameterSize ) );
                TRACE_ASSERT_RETURN( iCDSYFactory.EventManager()->GeneralEvent( ( ( ( TCDSYMsgDataGeneralEvent* )( aCDSYMessage.Data()->Ptr() ) )->iEvent ),
                                                                        ( ( TAny* )( ( TCDSYMsgDataGeneralEvent* )( aCDSYMessage.Data() )->Ptr() )->iParameter ),
                                                                        ( ( ( TCDSYMsgDataGeneralEvent* )( aCDSYMessage.Data()->Ptr() ) )->iParameterSize ) ) );

            break;

            default:

                TRACE_ASSERT_ALWAYS;

            break;
            }
        }

    COM_TRACE_( "CDSY - CCDSYEventManager::ProcessMessageL - return void" );
    }