emailcontacts/remotecontactlookup/engine/src/cpbkxrclsearchengine.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:39:21 +0200
changeset 0 8466d47a6819
permissions -rw-r--r--
Revision: 200949 Kit: 200951

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


#include "emailtrace.h"
#include "cpbkxrclsearchengine.h"
#include "cpbkxrclprotocolenvimpl.h"
#include "cpbkxremotecontactlookupprotocoladapter.h"
#include "cpbkxrclserviceuicontextimpl.h"
#include "pbkxrclutils.h"

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

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::CPbkxRclSearchEngine
// ---------------------------------------------------------------------------
//
CPbkxRclSearchEngine::CPbkxRclSearchEngine()
    {
    FUNC_LOG;
    }

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::ConstructL
// ---------------------------------------------------------------------------
//
void CPbkxRclSearchEngine::ConstructL()
    {
    FUNC_LOG;
    iEnvironment = CPbkxRclProtocolEnvImpl::NewL();
    }

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::NewL
// ---------------------------------------------------------------------------
//
EXPORT_C CPbkxRclSearchEngine* CPbkxRclSearchEngine::NewL()
    {
    FUNC_LOG;
    CPbkxRclSearchEngine* self = CPbkxRclSearchEngine::NewLC();
    CleanupStack::Pop( self );
    return self;
    }

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::NewLC
// ---------------------------------------------------------------------------
//
EXPORT_C CPbkxRclSearchEngine* CPbkxRclSearchEngine::NewLC()
    {
    FUNC_LOG;
    CPbkxRclSearchEngine* self = new( ELeave ) CPbkxRclSearchEngine;
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;
    }

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::~CPbkxRclSearchEngine
// ---------------------------------------------------------------------------
//
CPbkxRclSearchEngine::~CPbkxRclSearchEngine()
    {
    FUNC_LOG;
    delete iEnvironment;
    }

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::DefaultAccountIdL
// ---------------------------------------------------------------------------
//
TPbkxRemoteContactLookupProtocolAccountId CPbkxRclSearchEngine::DefaultAccountIdL() const
    {
    FUNC_LOG;
    return PbkxRclUtils::DefaultProtocolAccountIdL();
    }

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::NewAccountL
// ---------------------------------------------------------------------------
//
CPbkxRemoteContactLookupProtocolAccount* CPbkxRclSearchEngine::NewAccountL(
    const TPbkxRemoteContactLookupProtocolAccountId& aId ) const
    {
    FUNC_LOG;
    CPbkxRemoteContactLookupProtocolAdapter* adapter = CreateAdapterLC( aId );
    CPbkxRemoteContactLookupProtocolAccount* account = adapter->NewProtocolAccountL( aId );
    CleanupStack::PopAndDestroy( adapter );
    return account;
    }
       
// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::NewContextL
// ---------------------------------------------------------------------------
//
CPbkxRemoteContactLookupServiceUiContext* CPbkxRclSearchEngine::NewContextL( 
    TContextParams& aParams ) const
    {
    FUNC_LOG;
    CPbkxRclServiceUiContextImpl* context = CPbkxRclServiceUiContextImpl::NewL(
        aParams.iProtocolAccountId,
        aParams.iMode );
    return context;
    }

// ---------------------------------------------------------------------------
// CPbkxRclSearchEngine::CreateAdapterLC
// ---------------------------------------------------------------------------
//
CPbkxRemoteContactLookupProtocolAdapter* CPbkxRclSearchEngine::CreateAdapterLC(
    const TPbkxRemoteContactLookupProtocolAccountId& aId ) const
    {
    FUNC_LOG;
    CPbkxRemoteContactLookupProtocolAdapter* adapter =
        CPbkxRemoteContactLookupProtocolAdapter::NewL( 
            aId.iProtocolUid, 
            *iEnvironment );
    CleanupStack::PushL( adapter );
    return adapter;
    }