bluetoothengine/btnotif/btnotifclient/inc/btnotifclient.h
author hgs
Mon, 03 May 2010 14:36:07 +0300
changeset 29 48ae3789ce00
permissions -rw-r--r--
201017_2

/*
* ============================================================================
*  Name        : btnotifclient.h
*  Part of     : bluetoothengine / btnotifclient
*  Description : Session class for client-server interaction with btnotifserver.
*
*  Copyright © 2009-2010 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:
*  Nokia Corporation
* ============================================================================
* Template version: 4.2
*/

#ifndef RBTNOTIFCLIENT_H
#define RBTNOTIFCLIENT_H

#include <e32base.h>
#include <btmanclient.h>

/**
 *  A handle to a session with the Bluetooth notifier server for showing
 *  Bluetooth-related notifications to the user.
 *
 *  ?more_complete_description
 *  @code
 *   ?good_class_usage_example(s)
 *  @endcode
 *
 *  @lib ?library
 *  @since Symbian^4
 */
NONSHARABLE_CLASS( RBTNotifier ) : public RSessionBase
    {
public:

    /**
     * Constructor.
     *
     * @since Symbian^4
     */
    IMPORT_C RBTNotifier();
    
    /**
     * Connect to the Bluetooth notifier server.
     *
     * @since Symbian^4
     * @return KErrNone, if successful. Otherwise one of 
     *         the system-wide error codes.
     */
    IMPORT_C TInt Connect();

    /**
     * Get the version information about the client.
     *
     * @since Symbian^4
     * @return The version of the client-server interface implemented by this client.
     */
    IMPORT_C TVersion Version();

    /**
     * Requests the extended notifier server to start the notifier
     * identified by the specified UID. The request is synchronous; 
     * the call returns when the request is complete.
     *
     * @since Symbian^4
     * @param aNotifierUid The UID identifying the notifier. This is 
     *        the same UID as used with RNotifier for the same purpose.
     * @param aBuffer Data that can be passed to the notifier; the format and 
     *        meaning of this depends on the notifier.
     * @return KErrNone, if successful; KErrNotFound, if there 
     *         is no notifier matching the specified UID; otherwise 
     *         one of the other system-wide error codes.
     */
    IMPORT_C TInt StartNotifier( TUid aNotifierUid, const TDesC8& aBuffer );

    /**
     * Requests the extended notifier server to start the notifier 
     * identified by the specified UID. This is an asynchronous request.
     *
     * @since Symbian^4
     * @param aRs The request status. On request completion, contains KErrNone, 
     *        if successful; KErrNotFound, if there is no notifier matching the 
     *        specified UID; KErrCancel, if the notifier was cancelled through 
     *        RBTNotifier::CancelNotifier; otherwise, one of the other system 
     *        wide error codes.
     * @param aNotifierUid The UID identifying the notifier. This is 
     *        the same UID as used with RNotifier for the same purpose.
     * @param aBuffer Data that can be passed to the notifier; the format and 
     *        meaning of this depends on the notifier.
     * @param aResponse Response data from the notifier; the format and meaning 
     *        of this depends on the notifier.
     */
    IMPORT_C void StartNotifierAndGetResponse( TRequestStatus& aRs, 
                TUid aNotifierUid, const TDesC8& aBuffer, TDes8& aResponse );

    /**
     * Requests the Bluetooth notifier server to cancel the notifier 
     * identified by the specified UID. The request is synchronous; 
     * the call returns when the request is complete.
     *
     * @since Symbian^4
     * @param aNotifierUid The UID identifying the notifier. This is 
     *        the same UID as used with RNotifier for the same purpose.
     * @return KErrNone, if successful; KErrNotFound, if there 
     *         is no notifier matching the specified UID; otherwise 
     *         one of the other system-wide error codes.
     */
    IMPORT_C TInt CancelNotifier( TUid aNotifierUid );

    /**
     * Requests the Bluetooth notifier server to update the active
     * notifier identified by the specified UID, with the data supplied.
     * The request is synchronous; the call returns when the request is complete.
     *
     * @since Symbian^4
     * @param aNotifierUid The UID identifying the notifier. This is 
     *        the same UID as used with RNotifier for the same purpose.
     * @param aBuffer Data that can be passed to the notifier; the format and 
     *        meaning of this depends on the notifier.
     * @param aResponse Response data from the notifier; the format and meaning 
     *        of this depends on the notifier.
     * @return KErrNone, if successful; KErrNotFound, if there 
     *         is no notifier matching the specified UID; otherwise 
     *         one of the other system-wide error codes.
     */
    IMPORT_C TInt UpdateNotifier( TUid aNotifierUid, 
                const TDesC8& aBuffer, TDes8& aResponse );

    /**
     * Requests the Bluetooth notifier server to pair with the device 
     * specified by the given Bluetooth device address.
     * The request is asynchronous; Use CancelPairing() to cancel
     * an outstanding pairing request.
     *
     * @since Symbian^4
     * @param aAddr The address of the remote device to perform pairing with.
     * @param aDeviceClass the CoD of the remote device.
     * @param aStatus The request status. On request completion, contains KErrNone, 
     *        if successful; KErrCancel, if the notifier was cancelled through 
     *        RBTNotifier::CancelPair; otherwise, one of the other system 
     *        wide error codes.
     */
    IMPORT_C void PairDevice( const TBTDevAddrPckgBuf& aAddr, TInt32 aDeviceClass,
                TRequestStatus& aStatus );
    
    /**
     * Requests the Bluetooth notifier server to cancel the current pairing 
     * request. The request is synchronous; 
     * the call returns when the request is complete.
     * 
     * If this request is issued when the Bluetooth
     * notifier server has completed pairing with the device, the pairing 
     * will not be un-done. That is, the device will not be unpaired. 
     *
     * @since Symbian^4
     */
    IMPORT_C void CancelPairDevice();

private:

private: // data

    /**
     * ?description_of_member
     */
//    ?type ?member_name;

    };

#endif // RBTNOTIFCLIENT_H