mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/Stubs/inc/callinformation.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:12:07 +0300
branchRCL_3
changeset 22 73a1feb507fb
permissions -rw-r--r--
Revision: 201032 Kit: 201035

/*
* Copyright (c) 2008-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:  Call state information
*
*/


#ifndef CALLINFORMATION_H
#define CALLINFORMATION_H

#include <e32base.h>
#include <mcall.h>

/**  The category UID for the messages in this header file. */
const TUid KCatCallInformation = { 0x102078FD }; 

/**  Version number of this API */
const TInt KCallInformationVersionMajor( 1 );
const TInt KCallInformationVersionMinor( 0 );
const TInt KCallInformationVersionBuild( 0 );
  
#include <e32cmn.h>

/**
 *  Holds single calls information.
 *
 *  @since S60 v5.1
 */
NONSHARABLE_CLASS( TCallInfo ) : public MCall
    {
public:
    
    TInt CallIndex() const { return iIndex; }   
    
    CCPCall::TCallType CallType() const { return iType; }

    CCPCall::TCallState CallState() const { return iState; }
    
    TUint32 ServiceId() const { return iServiceId; }

    CCPCall::TCallDirection CallDirection() const { return iDirection; }
    
    CCPCall::TCallState iState;
    CCPCall::TCallType iType;
    CCPCall::TCallDirection iDirection;
    TInt iIndex;
    TInt iIdentifier;
    TUint32 iServiceId;
    };


/**
 *  Class holding information about calls.
 *  Can be packed for IPC purposes. 
 *  
 *  @since S60 v5.1
 */
NONSHARABLE_CLASS( CCallInfos ) : public CBase 
    {
public:
    
    /**
     * Two-phased constructor.     
     */
    static CCallInfos* NewL();
    
    /**
     * Two-phased constructor.     
     */
    static CCallInfos* NewLC();
    
    /**
     * Destructor.
     */
    virtual ~CCallInfos();
    
    /**
     * Adds information about a call.  
     *
     * @since S60 v5.1
     * @param aCallInfo Call information to be added.    
     */
    inline void AddL( TCallInfo& aCallInfo );
    
    /**
     * Returns information about all calls.
     *
     * @since S60 v5.1      
     * @return Reference to call info array
     */
    inline const RArray<TCallInfo>& CallInfos() const;
    
    /**
     * Packages this class for IPC transfer.
     *
     * @since S60 v5.1
     * @return Pointer to descriptor holding the class.
     */
    inline HBufC8* ExternalizeL() const;
    
    /**
     * Intializes the class from descriptor
     *
     * @since S60 v5.1
     * @param aCallInfos Reference to descriptor containg the class data.   
     */    
    inline void InternalizeL( const TDesC8& aCallInfos );
    

    // Helper function for the STUB ONLY:
    inline void AddCallInfosL();
    
private:

    inline CCallInfos();
    
    
private:
    RArray<TCallInfo> iCallInfos;
    };

/**
 * Commands
 */
enum TCallInformationCommands
    {
    EGetAllCallStates = 0
    };
    
/**
 * Events
 */
enum TCallInformationEvents
    {
    EChangesInCallStates = 0
    };


// Implementation is stubed.
#include "ccallinfos_stub.inl"

#endif // CALLINFORMATION_H