phonesrv_plat/call_information_api/inc/ccallinformation.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:15:03 +0100
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2007-2008 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:  Provides information about ongoing calls.
*
*/


#ifndef C_CALLINFORMATION_H
#define C_CALLINFORMATION_H

#include <e32base.h>

#include "mcall.h"


// forward declarations 
class MCallInformationObserver;
class CCallInformationImpl;
class CCallInfoIter;


/**
 *  Class to be used for receiving information about ongoing calls. 
 *
 *  @code
 *  // create the CCallInformation instance e.g. when the client component is created
 *  iCallInfo = CCallInformation::NewL(); 
 *  iCallInfo->NotifyCallInformationChanges(*iObserver);
 *  
 *  // and use it when needed. 
 *  CCallInfoIter& iter = iCallInfo->GetCallsL();
 *  @endcode
 *
 *  @lib telephonyservice.lib
 *  @since S60 v5.1 
 */
NONSHARABLE_CLASS( CCallInformation ) : public CBase
    {

public:

    /**
     * Two-phased constructor.          
     */
    IMPORT_C static CCallInformation* NewL();
    

    /**
    * Destructor.
    */
    virtual ~CCallInformation();

    /**
     * Allows a client to be notified when there are changes in current calls.
     * There can be only one observer per CCallInformation instance.
     *
     * @since S60 v5.1 
     * @param aObserver Observer for notifications.
     */
     IMPORT_C void NotifyCallInformationChanges( MCallInformationObserver& aObserver );
    
    /**
     * Used to cancel previously placed NotifyCallInformationChanges call.
     *
     * @since S60 v5.1      
     */
     IMPORT_C void CancelNotification();
     
    /**
     * Gets the snapshot of ongoing calls. 
     * The returned reference should not be stored as member variable 
     * as it goes out of scope when there are changes in call information.
     *
     * @since S60 v5.1      
     * @return Ongoing calls.
     */
     IMPORT_C CCallInfoIter& GetCallsL( );
        
    /**
     * Returns information whether call in given state exist.
     * 
     * @since S60 v5.2
     * @param aState Specifies a call state that is used as a search key.
     * @return ETrue if call in given state exist.
     */
    IMPORT_C TBool IsCallInState( CCPCall::TCallState aState ) const;
     
     
private:

    CCallInformation();

    void ConstructL();


private: // data    
    
	CCallInformationImpl* iImpl;	
	
    };


#endif // C_CALLINFORMATION_H