iptel_plat/vccpropertyhandler_api/inc/vccuipsproperty.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:12:36 +0200
changeset 0 a4daefaec16c
permissions -rw-r--r--
Revision: 201001 Kit: 201003

/*
* 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:   Vcc P&S property manager
*
*/




#ifndef C_VCCPSPROPERTY_H
#define C_VCCPSPROPERTY_H

#include <e32base.h>
#include <e32std.h>
#include <e32property.h>

#include <vccsubscribekeys.h>

/**
 *  CVccUiPsProperty manages the VCC P&S keys on the UI side:
 *
 *  This class defines the VCC property keys used by the UI.
 *  It provides access to read/write values. Keys can be deleted.
 *
 *  Key KVccPropKeyHoRequest:
 *      EVccNoRequestOngoing                idle state
 *      EVccManualStartCsToPsHoRequest      manual HO PS->CS
 *      EVccManualCancelCsToPsHoRequest     manual HO CS->PS
 *      EVccUndefinedRequest                P&S key not available
 *
 *  @code
 *      CVccUiPsProperty* iVccPsp = CVccUiPsProperty::NewL();
 *      ...
 *      iVccPsp.NotifySubscriberL(EVccManualStartCsToPsHoRequest);
 *      ...
 *      iVccPsp.NotifySubscriberL(EVccManualCancelCsToPsHoRequest);
 *      ...
 *      delete iVccPsp;
 *  @endcode
 *
 *
 *  @lib vccuipropertyhandler.lib
 *  @since S60 v3.2
 */
class CVccUiPsProperty : public CBase
{
public:

    /**
     * Two-phased constructor.
     *
     * Defines UI side VCC property keys if they are not available.
     */
    IMPORT_C static CVccUiPsProperty* NewL();

    /**
     * Destructor.
     * Note! Deletes Vcc UI side property keys
     */
    IMPORT_C virtual ~CVccUiPsProperty();

    /**
     * Update VCC property key KVccPropKeyHoRequest with the given value.
     *
     *  @since S60 v3.2
     * @param aValue The new value
     */
    IMPORT_C void NotifySubscriberL( TVccHoRequest aValue );

    /**
     * Gets the current value of the Vcc property key KVccPropKeyHoRequest.
     *
    *  @since S60 v3.2
     * @param aValue The value of the key
     * @return KErrNone / KErrPermissionDenied/ KErrNotFound/KErrArgument
     */
    IMPORT_C TInt GetCurrentRequest( TVccHoRequest& aValue );

    /**
     * Deletes keys used by UI
     */
    IMPORT_C TInt DeleteKeys();

private:
    /**
     * C++ Constructor
     */
    CVccUiPsProperty();

    /**
     * Symbian 2nd phase Constructor
     */
    void ConstructL();

    /**
     * Defines keys used by UI
     */
    void DefineKeysL();

    /**
     * creates handles to property keys used by UI
     */
    void CreateHandlesL();

private: //data

    /**
     * Handle to property which is updated by the UI
     * Own
     */
    RProperty iHoRequestKey;
};

#endif /*C_VCCPSPROPERTY_H*/