ximpfw/presence/srcpresencefrontend/srcpresencemanager/presencefeaturesimp.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:54:49 +0200
changeset 0 e6b17d312c8b
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* 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:  Implementation of MXIMPContext
 *
*/


#include <ximpcontext.h>
#include "presencefeaturesimp.h"
#include "presenceobjectfactoryimp.h"
#include "presencepublishingimp.h"
#include "presentitygroupsimp.h"
#include "presencewatchingimp.h"
#include "presenceauthorizationimp.h"
#include "ximpcontextclientinfoimp.h"
#include "ximpidentityimp.h"
#include "ximpcontextinternal.h"



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

// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::NewL()
// ---------------------------------------------------------------------------
//
EXPORT_C CPresenceFeaturesImp* CPresenceFeaturesImp::NewL(MXIMPContext* aContext)
    {
    CPresenceFeaturesImp* self = new( ELeave ) CPresenceFeaturesImp() ;
    CleanupStack::PushL( self );
    self->ConstructL(aContext);
    CleanupStack::Pop();
    return self;
    }

// ---------------------------------------------------------------------------
// Implement supported interface access.
// ---------------------------------------------------------------------------
//

XIMPIMP_IF_BASE_GET_INTERFACE_BEGIN( CPresenceFeaturesImp, 
                                     MPresenceFeatures )
XIMPIMP_IF_BASE_GET_INTERFACE_END()


XIMPIMP_IF_BASE_GET_CONST_INTERFACE_BEGIN( CPresenceFeaturesImp, 
                                           MPresenceFeatures )
XIMPIMP_IF_BASE_GET_INTERFACE_END()

// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::~CPresenceFeaturesImp()
// ---------------------------------------------------------------------------
//
CPresenceFeaturesImp::~CPresenceFeaturesImp()
    {
    delete iPresGroup;
    delete iPresWatch;
    delete iPresAuth;
    delete iPresPub;
    delete iPresObjFactory;
    iCtxInternal = NULL;
    }


// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::CPresenceFeaturesImp( CXIMPContextClientProxy& aCtxProxy )
// ---------------------------------------------------------------------------
//
CPresenceFeaturesImp::CPresenceFeaturesImp()
    {
    }

// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::SetCtxL(MXIMPContext* aContext)
// ---------------------------------------------------------------------------
//
void CPresenceFeaturesImp::SetCtxL(MXIMPContext* aContext)
    {
    if(!aContext)
        User::Leave(KErrArgument);
    iCtxInternal = TXIMPGetInterface<MXIMPContextInternal>::From(*aContext,EReturnNullIfUnknown);
                       
    }

// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::ConstructL(MXIMPContext* aContext)
// ---------------------------------------------------------------------------
//
void CPresenceFeaturesImp::ConstructL(MXIMPContext* aContext)
    {
    SetCtxL(aContext);

    iPresObjFactory = CPresenceObjectFactoryImp::NewL();
    iPresPub = CPresencePublishingImp::NewL( *iCtxInternal );
    iPresWatch = CPresenceWatchingImp::NewL( *iCtxInternal );
    iPresGroup = CPresentityGroupsImp::NewL( *iCtxInternal );
    iPresAuth = CPresenceAuthorizationImp::NewL(*iCtxInternal );
    }


// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::PresenceObjectFactory()
// ---------------------------------------------------------------------------
//
MPresenceObjectFactory& CPresenceFeaturesImp::PresenceObjectFactory() const
    {
    return *iPresObjFactory;
    }


// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::PresencePublishing()
// ---------------------------------------------------------------------------
//
MPresencePublishing& CPresenceFeaturesImp::PresencePublishing() const
    {
    return *iPresPub;
    }


// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::PresentityGroups()
// ---------------------------------------------------------------------------
//
MPresentityGroups& CPresenceFeaturesImp::PresentityGroups() const
    {
    return *iPresGroup;
    }

// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::PresenceWatching()
// ---------------------------------------------------------------------------
//
MPresenceWatching& CPresenceFeaturesImp::PresenceWatching() const
    {
    return *iPresWatch;
    }

// ---------------------------------------------------------------------------
// CPresenceFeaturesImp::PresenceWatching()
// ---------------------------------------------------------------------------
//
MPresenceAuthorization& CPresenceFeaturesImp::PresenceAuthorization() const
    {
    return *iPresAuth;
    }