bluetoothengine/headsetsimulator/core/inc/hsclientobservers.h
author michal.sulewski
Wed, 15 Sep 2010 15:59:44 +0200
branchheadsetsimulator
changeset 60 90dbfc0435e3
permissions -rw-r--r--
source code commit

/*
 * Component Name: Headset Simulator
 * Author: Comarch S.A.
 * Version: 1.0
 * Copyright (c) 2010 Comarch S.A.
 *  
 * This Software is submitted by Comarch S.A. to Symbian Foundation Limited on 
 * the basis of the Member Contribution Agreement entered between Comarch S.A. 
 * and Symbian Foundation Limited on 5th June 2009 (“Agreement”) and may be 
 * used only in accordance with the terms and conditions of the Agreement. 
 * Any other usage, duplication or redistribution of this Software is not 
 * allowed without written permission of Comarch S.A.
 * 
 */

#ifndef HSCLIENTOBSERVERS_H
#define HSCLIENTOBSERVERS_H

class CHsClient;
class CBluetoothSocket;
class TBTDevAddr;

/**
 * @brief Observer to notify about new AG client connection and disconnection.
 */
class MHsClientObserver
{
public:
    /**
     * Informs about disconnection from AG.
     * 
     * @param aClient AG client
     * @param aErr KErrNone if successful, otherwise one of the system-wide 
     *        error codes
     */
    virtual void HandleClientDisconnect( CHsClient *aClient, TInt aErr ) = 0;

    /**
     * Informs about connection with AG.
     * 
     * @param aClient AG client
     * @param aErr KErrNone if successful, otherwise one of the system-wide 
     *        error codes
     */
    virtual void HandleNewClientL( CHsClient *aClient, TInt aErr ) = 0;
};

/**
 * @brief Observer to notify about AG client states.
 */
class MHsClientStateNotifier
{
public:

    /**
     * Informs about connection with AG.
     * 
     * @param aErr KErrNone if successful, otherwise one of the system-wide 
     *        error codes
     */
    virtual void HandleClientConnectL( TInt aErr ) = 0;

    /**
     * Informs about disconnection from AG.
     * 
     * @param aErr KErrNone if successful, otherwise one of the system-wide 
     *        error codes
     */
    virtual void HandleClientDisconnectL( TInt aErr ) = 0;

    /**
     * Informs about status of received data from AG.
     * 
     * @param aData received data
     * @param aErr KErrNone if successful, otherwise one of the system-wide 
     *        error codes
     */
    virtual void HandleClientReceiveCompleteL( const TDesC8 &aData,
            TInt aErr ) = 0;

    /**
     * Informs about status of sent data from AG.
     * 
     * @param aErr KErrNone if successful, otherwise one of the system-wide 
     *        error codes
     */
    virtual void HandleClientSendCompleteL( TInt aErr ) = 0;

    /**
     * Informs about problem with AG.
     * 
     * @param aErr system-wide error codes
     */
    virtual void HandleClientOtherProblemL( TInt aErr ) = 0;
};

/**
 * @brief Observer to notify about new AG client.
 */
class MHsAcceptNewClientObserver
{
public:
    /**
     * Informs about connection with AG.
     * 
     * @param aClient socket which AG is connected, if NULL see aErr code
     * @param aErr KErrNone if successful, otherwise one of the system-wide 
     *        error codes
     */
    virtual void HandleNewClientL( CBluetoothSocket *aClient, TInt aErr ) = 0;
};

/**
 * @brief Observes remote control clients
 */
class MRemoteControllerConnectionObserver
{

public:
    /**
     * Handles remote control client connection
     * 
     * @param aErr error value 
     */
    virtual void HandleRemoteControllerConnected( TInt aErr ) = 0;

    /**
     * Handles remote control client disconnection
     * 
     * @param aErr error value 
     */
    virtual void HandleRemoteControllerDisconnected( TInt aErr ) = 0;

};

/**
 * @brief Observer to notify about status of searching service and port on 
 *        device.
 */
class MHsBTManagerObserver
{
public:
    /** 
     * Called when port on desired device found 
     * 
     * @param aDevName bluetooth name of found device
     * @param aDevAddr bluetooth address of found device
     * @param aPort found port number
     */
    virtual void HandleDesiredDeviceFound( const TDesC &aDevName,
            const TBTDevAddr &aDevAddr, const TInt aPort ) = 0;

    /** 
     * Called when desired device not found 
     *
     * @param aErr error code 
     */
    virtual void HandleDesiredDeviceNotFound( TInt aErr ) = 0;

    /** 
     * Called when sdp query error happened 
     *
     * @param aErr error code 
     */
    virtual void HandleSdpQueryError( TInt aErr ) = 0;

    /** 
     * Called when service on device not found 
     *
     * @param aErr error code 
     */
    virtual void HandleServiceNotFound( TInt aErr ) = 0;

    /** 
     * Called when port number on device not found 
     *
     * @param aErr error code 
     */
    virtual void HandlePortNotFound( TInt aErr ) = 0;

};

#endif /* HSCLIENTOBSERVERS_H */