imstutils/imconversationview/tsrc/imcvuiengine_test/src/s_cch.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 10:12:18 +0200
changeset 0 5e5d6b214f4f
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* 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: s_cch.cpp
*
*/

//  EXTERNAL INCLUDES

#include <cch.h>
#include <cchtypes.h>
#include <spentry.h>
#include <spsettings.h>
#include <spproperty.h>
#include "s_cch.h"

CCchService* myService = NULL;



TInt CreateSpEntryL( TInt aServiceId )
    {    
    CSPSettings* myCSPSettings = CSPSettings::NewL();
    CSPEntry* entry = CSPEntry::NewLC();
    entry->SetServiceId( aServiceId );
    User::LeaveIfError( entry->SetServiceName( KTestServiceName ) );
    CSPProperty* property = NULL;
    // set voip enabled property
    property = CSPProperty::NewLC();
    property->SetName( ESubPropertyVoIPEnabled );
    property->SetValue( EOn );
    entry->AddPropertyL( *property );
    CleanupStack::PopAndDestroy( property );

    // set presence settings id property
    property = CSPProperty::NewLC();
    property->SetName( ESubPropertyPresenceSettingsId );
    property->SetValue( 1 );
    entry->AddPropertyL( *property );
    CleanupStack::PopAndDestroy( property );

    // set im settings id property
    property = CSPProperty::NewLC();
    property->SetName( ESubPropertyIMSettingsId );
    property->SetValue( 1 );
    entry->AddPropertyL( *property );
    CleanupStack::PopAndDestroy( property );

    // set Presence FW PSC plugin UID
    property = CSPProperty::NewLC();
    property->SetName( EPropertyPCSPluginId );
    property->SetValue( 0x20007B6D );
    entry->AddPropertyL( *property );
    CleanupStack::PopAndDestroy( property );

    property = CSPProperty::NewLC();
    property->SetName( EPropertyContactViewPluginId );        
    property->SetValue( KMECOIMPLEMENTATIONUID );
    entry->AddPropertyL( *property );
    CleanupStack::PopAndDestroy( property );


    myCSPSettings->AddEntryL( *entry ); 
    TInt createdServiceId = entry->GetServiceId();
    CleanupStack::PopAndDestroy( entry );

    return createdServiceId;
    } 


/*************** Stubs ****************/
CCchService* CCch::GetService( TInt /*aServiceId*/ )
    {
    if( !myService )
        {
        myService = new ( ELeave ) MyCchService();
        return myService;
        }
    return myService;
    }
/*************** Stubs ****************/

CCch::CCch()
    {

    }

CCch::~CCch()
    {
    if(myService)
        {
        myService = NULL;
        }

    }
// ---------------------------------------------------------------------------
// CCch::NewL
// Two-phased constructor.
// ---------------------------------------------------------------------------
//
CCch* CCch::NewL( )
    {
    CCch* self = CCch::NewLC( );
    CleanupStack::Pop( self );
    return self;
    }
// ---------------------------------------------------------------------------
// CCch::ConstructL
// Symbian 2nd phase constructor can leave.
// ---------------------------------------------------------------------------
//
void CCch::ConstructL()
    {
    //iImplementation = CCchImpl::NewL( this );
    
    }
// ---------------------------------------------------------------------------
// CCch::NewLC
// Two-phased constructor.
// ---------------------------------------------------------------------------
//
CCch* CCch::NewLC( )
    {
    CCch* self = new (ELeave) CCch( );
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;
    }

// ---------------------------------------------------------------------------
// CCchUIHandler::GetServiceIds
// ---------------------------------------------------------------------------
//
TInt CCch::GetServiceIds( RArray<TInt>& aIds ) const
{

}

// ---------------------------------------------------------------------------
// CCchUIHandler::GetServiceIds
// ---------------------------------------------------------------------------
//
TInt CCch::GetServices( TCCHSubserviceType aType, 
        RPointerArray<CCchService>& aServices )
    {

    }

// ---------------------------------------------------------------------------
// CCchUIHandler::ConnectivityDialogsAllowed
// ---------------------------------------------------------------------------
//
TBool CCch::ConnectivityDialogsAllowed() const
{

}

// ---------------------------------------------------------------------------
// CCchUIHandler::SetConnectivityDialogsAllowed
// ---------------------------------------------------------------------------
//
void CCch::SetConnectivityDialogsAllowed( 
        TBool aConnectivityDialogsAllowed )
    {
     }
// ========================== OTHER EXPORTED FUNCTIONS =========================
// --------------------------------------------------------------------------
// TCchServiceStatus::TCchServiceStatus
// --------------------------------------------------------------------------
//
TCchServiceStatus::TCchServiceStatus()
: iState( ECCHUninitialized )
, iError( KErrNone )
        {
        }

// --------------------------------------------------------------------------
// TCchServiceStatus::State
// --------------------------------------------------------------------------
//
TCCHSubserviceState TCchServiceStatus::State() const
{ 
return iState; 
}

// --------------------------------------------------------------------------
// TCchServiceStatus::Error
// --------------------------------------------------------------------------
//  
TInt TCchServiceStatus::Error() const
{ 
return iError; 
}

// --------------------------------------------------------------------------
// TCchServiceStatus::SetState
// --------------------------------------------------------------------------
//
void TCchServiceStatus::SetState( TCCHSubserviceState aState )
    { 
    iState = aState; 
    }

// --------------------------------------------------------------------------
// TCchServiceStatus::SetError
// --------------------------------------------------------------------------
//
void TCchServiceStatus::SetError( TInt aError )
    { 
    iError = aError; 
    }
//  End of File

/************* End of Stubs ************/



TInt MyCchService::Enable( TCCHSubserviceType aType )
    { 
    return KErrNone; 
    }

/**
 * Launches service disable. See MCchServiceObserver for status changes.
 *
 * @param aType Type of service
 * @return Symbian error
 */
TInt MyCchService::Disable( TCCHSubserviceType /*aType*/ ){ return KErrNone; }

/**
 * Returns the current service state
 *
 * @param aType Type of service
 * @param aStatus Status of the service, return value
 * @return Symbian error code
 */
TInt MyCchService::GetStatus( TCCHSubserviceType aType, 
        TCchServiceStatus& aStatus ) const 

        { 
        if ( (ECCHIMSub == aType)  )
            {		
            aStatus.SetState(ECCHEnabled);	
            aStatus.SetError(KErrNone);			
            return KErrNone; 
            }	

        return KErrNotFound	; 

        }

/**
 * Returns the connection parameters
 *
 * @param aType Type of service
 * @param aParameter Connection parameter of the service
 * @param aValue Value of the parameter
 * @return Symbian error code
 */
TInt MyCchService::GetConnectionParameter( TCCHSubserviceType /*aType*/,
        TCchConnectionParameter /*aParameter*/, TInt& /*aValue*/ ) const{ return KErrNone;}

/**
 * Returns the connection parameters
 *
 * @param aType Type of service
 * @param aParameter Connection parameter of the service
 * @param aValue Value of the parameter
 * @return Symbian error code
 */
TInt MyCchService::GetConnectionParameter( TCCHSubserviceType /*aType*/, 
        TCchConnectionParameter aParameter, RBuf& aValue ) const

        {
        if (aParameter == ECchUsername)
            {
            TBuf<512> username;
            username = KTestUserName;            
            aValue.Copy(username);  
            return KErrNone;
            }

        return KErrNotFound;
        }

/**
 * Sets the connection parameters
 *
 * @param aType The type of service
 * @param aParameter Connection parameter of the service
 * @param aValue Value of the parameter
 * @return Symbian error code
 */
TInt MyCchService::SetConnectionParameter( TCCHSubserviceType /*aType*/, 
        TCchConnectionParameter /*aParameter*/, TInt /*aValue*/ )

    {
    return KErrNone;
    }

/**
 * Sets the connection parameters
 *
 * @param aType The type of service
 * @param aParameter Connection parameter of the service
 * @param aValue Value of the parameter
 * @return Symbian error code
 */
TInt MyCchService::SetConnectionParameter( TCCHSubserviceType /*aType*/, 
        TCchConnectionParameter /*aParameter*/, const TDesC& /*aValue*/ )
    {
    return KErrNone;	
    }

/**
 * Reserves the service for exclusive usage
 *
 * @param aType Type of service
 * @return Symbian error code
 */
TInt MyCchService::Reserve( TCCHSubserviceType /*aType*/ ){ return KErrNone; }

/**
 * Frees the service of exclusive usage
 *
 * @param aType Type of service
 * @return Symbian error code
 */
TInt MyCchService::Free( TCCHSubserviceType /*aType*/ ){ return KErrNone; }

/**
 * Is the service reserved
 *
 * @param aType Type of service
 * @param aReserved True if the service is reserved
 * @return Symbian error code
 */
TInt MyCchService::IsReserved( TCCHSubserviceType /*aType*/, TBool& /*aReserved*/ ) const{ return KErrNone; }

/**
 * Returns the service id
 *
 * @return The id of the service
 */
TInt MyCchService::ServiceId() const{ return KErrNone; }

/**
 * @deprecated Do not use this anymore, change to AddObserver!
 *
 * Adds observer for listening service events
 *
 * @param aObserver Event observing class
 */
void MyCchService::SetObserver( MCchServiceStatusObserver& aObserver )
    {
    iObserver = &aObserver;
    }

/**
 * @deprecated Do not use this anymore, change to 
 * RemoveObserver method with paramater
 * 
 * Removes the observer of service events
 */
void MyCchService::RemoveObserver( )
    {
    iObserver = NULL;
    }


/**
 * Adds observer for listening service events
 *
 * @param aObserver Event observing class
 * @return KErrAlreadyExist Observer already added
 *         KErrNone Observer was added
 */
TInt MyCchService::AddObserver( MCchServiceStatusObserver& /*aObserver*/ ){ return KErrNone; }

/**
 * Removes the observer of service events
 *
 * @param aObserver Event observing class
 * @return KErrNotFound Observer was not found
 *         KErrNone Observer was removed
 */
TInt MyCchService::RemoveObserver( MCchServiceStatusObserver& /*aObserver*/ ){ return KErrNone; }

/**
 * Checks if the type is supported
 *
 * @param aType Type of service
 * @param aSupported True if the service type is supported
 * @return Symbian error code
 */
TInt MyCchService::IsSupported( TCCHSubserviceType /*aType*/, TBool& /*aSupported*/ ) const{ return KErrNone; }


//end of file