cmmanager/cmmgr/cmmapi/src/cmdestinationwrapper.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:53:07 +0300
changeset 20 9c97ad6591ae
child 27 489cf6208544
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* Copyright (c) 2009-2010 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:
* Collects API calls from RCmDestination- and RCmDestinationExt-classes.
*
*/


#include "cmdestinationwrapper.h"
#include "cmmanagerapi.h"

#include "OstTraceDefinitions.h"
#ifdef OST_TRACE_COMPILER_IN_USE
#include "cmdestinationwrapperTraces.h"
#endif


CCmDestinationWrapper* CCmDestinationWrapper::NewL()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_NEWL_ENTRY );

    CCmDestinationWrapper* self = CCmDestinationWrapper::NewLC();
    CleanupStack::Pop( self );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_NEWL_EXIT );
    return self;
    }

CCmDestinationWrapper* CCmDestinationWrapper::NewLC()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_NEWLC_ENTRY );

    CCmDestinationWrapper* self = new (ELeave) CCmDestinationWrapper;
    CleanupStack::PushL( self );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_NEWLC_EXIT );
    return self;
    }

CCmDestinationWrapper::~CCmDestinationWrapper()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_CCMDESTINATIONWRAPPER_ENTRY );

    iCmDestinationApi.Close();

    if ( iCmManagerApi )
        {
        iCmManagerApi->RemoveDestinationWrapper( this );
        iCmManagerApi = NULL;
        }

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_CCMDESTINATIONWRAPPER_EXIT );
    }

CCmDestinationWrapper::CCmDestinationWrapper()
    {
    OstTraceFunctionEntry0( DUP1_CCMDESTINATIONWRAPPER_CCMDESTINATIONWRAPPER_ENTRY );

    iCmManagerApi = NULL;
    iReferenceCounter = 1;

    OstTraceFunctionExit0( DUP1_CCMDESTINATIONWRAPPER_CCMDESTINATIONWRAPPER_EXIT );
    }

void CCmDestinationWrapper::GetDestWithIdL(
        RCmManagerApi* aCmManagerApi,
        const TUint32 aId,
        TInt& aExistingHandle )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_GETDESTWITHIDL_ENTRY );

    if ( iCmManagerApi || iCmDestinationApi.SessionConnected() )
        {
        User::Leave( KErrAlreadyExists );
        }

    iCmManagerApi = aCmManagerApi;
    iCmDestinationApi.ConnectAndGetDestWithIdL( *aCmManagerApi, aId, aExistingHandle );
    if ( !aExistingHandle )
        {
        iCmManagerApi->StoreDestinationWrapper( this );
        }

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_GETDESTWITHIDL_EXIT );
    }

void CCmDestinationWrapper::CreateDestByNameL(
        RCmManagerApi* aCmManagerApi,
        const TDesC& aName )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_CREATEDESTBYNAMEL_ENTRY );

    if ( iCmManagerApi || iCmDestinationApi.SessionConnected() )
        {
        User::Leave( KErrAlreadyExists );
        }

    iCmManagerApi = aCmManagerApi;
    iCmDestinationApi.ConnectAndCreateDestWithNameL( *aCmManagerApi, aName );
    iCmManagerApi->StoreDestinationWrapper( this );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_CREATEDESTBYNAMEL_EXIT );
    }

void CCmDestinationWrapper::CreateDestByNameAndIdL(
        RCmManagerApi* aCmManagerApi,
        const TDesC& aName,
        const TUint32 aId )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_CREATEDESTBYNAMEANDIDL_ENTRY );

    if ( iCmManagerApi || iCmDestinationApi.SessionConnected() )
        {
        User::Leave( KErrAlreadyExists );
        }

    iCmManagerApi = aCmManagerApi;
    iCmDestinationApi.ConnectAndCreateDestWithNameAndIdL( *aCmManagerApi, aName, aId );
    iCmManagerApi->StoreDestinationWrapper( this );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_CREATEDESTBYNAMEANDIDL_EXIT );
    }

void CCmDestinationWrapper::GetConnMethodAsEmbeddedDestL(
        RCmManagerApi* aCmManagerApi,
        const TInt aConnMethodHandle,
        TInt& aExistingHandle )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_GETCONNMETHODASEMBEDDEDDESTL_ENTRY );

    if ( iCmManagerApi || iCmDestinationApi.SessionConnected() )
        {
        User::Leave( KErrAlreadyExists );
        }

    iCmManagerApi = aCmManagerApi;
    iCmDestinationApi.ConnectAndGetConnMethodAsEmbeddedDestL( *aCmManagerApi, aConnMethodHandle, aExistingHandle );
    if ( !aExistingHandle )
        {
        iCmManagerApi->StoreDestinationWrapper( this );
        }

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_GETCONNMETHODASEMBEDDEDDESTL_EXIT );
    }

TInt CCmDestinationWrapper::ConnectionMethodCount( TInt& aCount )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_CONNECTIONMETHODCOUNT_ENTRY );

    TInt err = iCmDestinationApi.ConnectionMethodCount( aCount );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_CONNECTIONMETHODCOUNT_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::Priority( const TInt aHandle, TUint& aPriority )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_PRIORITY_ENTRY );

    TInt err = iCmDestinationApi.Priority( aHandle, aPriority );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_PRIORITY_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::GetName( HBufC* aBuffer )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_GETNAME_ENTRY );

    TInt err = iCmDestinationApi.GetName( aBuffer );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_GETNAME_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::GetId( TUint32& aId )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_GETID_ENTRY );

    TInt err = iCmDestinationApi.GetId( aId );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_GETID_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::GetElementId( TUint32& aElementId )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_GETELEMENTID_ENTRY );

    TInt err = iCmDestinationApi.GetElementId( aElementId );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_GETELEMENTID_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::GetMetadata(
        const TUint32 aMetadataField,
        TUint32& aValue )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_GETMETADATA_ENTRY );

    TInt err = iCmDestinationApi.GetMetadata( aMetadataField, aValue );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_GETMETADATA_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::GetProtectionLevel( TInt& aProtectionLevel )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_GETPROTECTIONLEVEL_ENTRY );

    TInt err = iCmDestinationApi.GetProtectionLevel( aProtectionLevel );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_GETPROTECTIONLEVEL_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::AddConnectionMethod(
        const TInt aConnMethodHandle,
        TInt& aIndex )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_ADDCONNECTIONMETHOD_ENTRY );

    TInt err = iCmDestinationApi.AddConnectionMethod( aConnMethodHandle, aIndex );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_ADDCONNECTIONMETHOD_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::AddEmbeddedDestination(
        const TInt aDestHandle,
        TInt& aIndex )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_ADDEMBEDDEDDESTINATION_ENTRY );

    TInt err = iCmDestinationApi.AddEmbeddedDestination( aDestHandle, aIndex );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_ADDEMBEDDEDDESTINATION_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::DeleteConnectionMethod(
        const TInt aConnMethodHandle )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_DELETECONNECTIONMETHOD_ENTRY );

    TInt err = iCmDestinationApi.DeleteConnectionMethod( aConnMethodHandle );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_DELETECONNECTIONMETHOD_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::RemoveConnectionMethod(
        const TInt aConnMethodHandle )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_REMOVECONNECTIONMETHOD_ENTRY );

    TInt err = iCmDestinationApi.RemoveConnectionMethod( aConnMethodHandle );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_REMOVECONNECTIONMETHOD_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::ModifyPriority(
        const TInt aConnMethodHandle,
        const TUint aIndex )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_MODIFYPRIORITY_ENTRY );

    TInt err = iCmDestinationApi.ModifyPriority( aConnMethodHandle, aIndex );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_MODIFYPRIORITY_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::SetName( const TDesC& aValue )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_SETNAME_ENTRY );

    TInt err = iCmDestinationApi.SetName( aValue );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_SETNAME_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::SetMetadata(
        const TUint32 aMetaField,
        const TUint32 aValue )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_SETMETADATA_ENTRY );

    TInt err = iCmDestinationApi.SetMetadata( aMetaField, aValue );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_SETMETADATA_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::SetProtection( const TInt aValue )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_SETPROTECTION_ENTRY );

    TInt err = iCmDestinationApi.SetProtection( aValue );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_SETPROTECTION_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::SetHidden( const TBool aHidden )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_SETHIDDEN_ENTRY );

    TInt err = iCmDestinationApi.SetHidden( aHidden );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_SETHIDDEN_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::Update()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_UPDATE_ENTRY );

    TInt err = iCmDestinationApi.Update();

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_UPDATE_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::Refresh()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_REFRESH_ENTRY );

    TInt err = iCmDestinationApi.Refresh();

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_REFRESH_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::Delete()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_DELETE_ENTRY );

    TInt err = iCmDestinationApi.Delete();

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_DELETE_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::IsConnected( TBool& aResult )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_ISCONNECTED_ENTRY );

    TInt err = iCmDestinationApi.IsConnected( aResult );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_ISCONNECTED_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::IsHidden( TBool& aResult )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_ISHIDDEN_ENTRY );

    TInt err = iCmDestinationApi.IsHidden( aResult );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_ISHIDDEN_EXIT );
    return err;
    }

TInt CCmDestinationWrapper::IsEqual( const TInt aHandle, TBool& aResult )
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_ISEQUAL_ENTRY );

    TInt err = iCmDestinationApi.IsEqual( aHandle, aResult );

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_ISEQUAL_EXIT );
    return err;
    }

TBool CCmDestinationWrapper::SessionConnected()
    {
    return iCmDestinationApi.SessionConnected();
    }

void CCmDestinationWrapper::CloseSession()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_CLOSESESSION_ENTRY );
    iCmDestinationApi.Close();
    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_CLOSESESSION_EXIT );
    }

TInt CCmDestinationWrapper::GetHandle() const
    {
    return iCmDestinationApi.SubSessionHandle();
    }

RCmManagerApi* CCmDestinationWrapper::GetMainSession() const
    {
    return iCmManagerApi;
    }

void CCmDestinationWrapper::IncreaseReferenceCounter()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_INCREASEREFERENCECOUNTER_ENTRY );
    iReferenceCounter++;
    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_INCREASEREFERENCECOUNTER_EXIT );
    }

TInt CCmDestinationWrapper::DecreaseReferenceCounter()
    {
    OstTraceFunctionEntry0( CCMDESTINATIONWRAPPER_DECREASEREFERENCECOUNTER_ENTRY );

    iReferenceCounter--;
    if ( iReferenceCounter < 0 )
        {
        iReferenceCounter = 0;
        }

    OstTraceFunctionExit0( CCMDESTINATIONWRAPPER_DECREASEREFERENCECOUNTER_EXIT );
    return iReferenceCounter;
    }

// End of file