diff -r e6e3e87d58b4 -r 4df3a095718c htiui/HtiCommPlugins/HtiBtCommPlugin/BtEngine/inc/BtSerialClient.h --- a/htiui/HtiCommPlugins/HtiBtCommPlugin/BtEngine/inc/BtSerialClient.h Fri Mar 19 09:29:26 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,255 +0,0 @@ -/* -* Copyright (c) 2009 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: Bluetooth serial client. -* -*/ - - -#ifndef __BTSERIALCLIENT_H__ -#define __BTSERIALCLIENT_H__ - -// INCLUDES -#include -#include -#include -#include -#include - -#include "SocketObserver.h" - -// FORWARD DECLARATIONS -class CMessageServiceSearcher; -class CSocketsReader; -class CSocketsWriter; - - -class MBtSerialClientObserver - { -public: - virtual void ConnectedToServer(TInt aError) = 0; - virtual void DisconnectedFromServer() = 0; - virtual void DataFromServer(const TDesC8& aData) = 0; - virtual void AllBufferedDataSent() = 0; - }; - -/** -* CBtSerialClient -* Connects and sends messages to a remote machine using bluetooth -*/ -class CBtSerialClient : public CActive, public MSocketObserver - { - public: // Constructors and destructor - - /** - * NewL() - * Construct a CBtSerialClient - * @param aObserver the observer for this BT serial client - * @return a pointer to the created instance of CBtSerialClient - */ - IMPORT_C static CBtSerialClient* NewL( MBtSerialClientObserver& aObserver ); - - /** - * ~CBtSerialClient() - * Destroy the object and release all memory objects. - * Close any open sockets. - */ - IMPORT_C virtual ~CBtSerialClient(); - - public: // New functions - - /** - * ConnectL() - * Connect to remote device. Query user for a device. - */ - IMPORT_C void ConnectL(); - - /** - * ConnectL() - * Connect to remote device. - */ - IMPORT_C void ConnectL(const TBTDevAddr aBTServerDevice, const TInt aPort ); - - /** - * ConnectL() - * Connect to remote device by device name. - */ - IMPORT_C void ConnectL( const TDesC& aBTServerDeviceName, const TInt aPort ); - - /** - * DisconnectL() - * Disconnect from remote machine - */ - IMPORT_C void Disconnect(); - - /** - * IsConnecting() - * @return ETrue if the client is establishing a - * connection to the server. - */ - IMPORT_C TBool Connecting(); - - /** - * Connected() - * @return ETrue if the client is fully connected to the server. - */ - IMPORT_C TBool Connected(); - - /** - * ServerAddressL() - * @return address of connected server. Leaves with KErrNotReady, if - * not connected. - */ - TBTDevAddr ServerAddressL(); - - /** - * Add data to outgoing buffer and start sending it to client. - * - * Leaves with KErrOverflow, if the outgoing buffer cannot - * be added all of the aData. - * Leaves with KErrNotReady, if client is not connected. - * When all data in internal buffer has been sent, observer - * is notified (AllBufferedDataSent) - */ - IMPORT_C void SendL(const TDesC8& aData); - - /** - * Issue read operation. Will complete asyncronously. - * - * Leaves with KErrNotReady, if client is not connected. - * Notifies observer, when some data has been read. Caller - * is responsible for calling this method again to receive - * more data. - */ - IMPORT_C void ReadAsyncL(); - - /** - * Query free size of outgoing buffer. - */ - IMPORT_C TInt FreeSpaceInSendBuffer(); - - /** - * Query max size of outgoing buffer. - */ - IMPORT_C TInt SendBufferMaxSize(); - - /** - * Query the port of the service we are connected with - * @return Port number or KErrDisconnected if not connected to a service - */ - IMPORT_C TInt ServicePort(); - - protected: // from CActive - - /** - * DoCancel() - * Cancel any outstanding requests - */ - void DoCancel(); - - /** - * RunL() - * Respond to an event - */ - void RunL(); - - protected: // from MSocketObserver - - void ReportError( TErrorType aErrorType, TInt aErrorCode ); - void NewData( const TDesC8& aData ); - void AllBufferedDataSent(); - - private: - - /** - * ConnectToServerL - * Connects to the service - */ - void ConnectToServerL(); - - /** - * DisconnectFromServer() - * Disconnects from the service - */ - void DisconnectFromServer(); - - /** - * CBtSerialClient() - * Constructs this object - */ - CBtSerialClient( MBtSerialClientObserver& aObserver ); - - /** - * ConstructL() - * Performs second phase construction of this object - */ - void ConstructL(); - - private: // data - - /** - * TState - * The state of the active object, determines behaviour within - * the RunL method. - * EWaitingToGetDevice waiting for the user to select a device - * EGettingDevice searching for a device - * EGettingService searching for a service - * EGettingConnection connecting to a service on a remote machine - * EConnected connected to a service on a remote machine - */ - enum TState - { - EWaitingToGetDevice, // phase 1 of Connect - EGettingDevice, // phase 2 of Connect - EGettingService, // phase 3 of Connect - EGettingConnection, // phase 4 of Connect - EConnected, // sending and receiving data - EDisconnecting - }; - - MBtSerialClientObserver& iObserver; - - /** iState the current state of the client */ - TState iState; - - /** - * iServiceSearcher searches for service this - * client can connect to. - * Owned by CBtSerialClient - */ - CMessageServiceSearcher* iServiceSearcher; - - /** - * iCurrentServiceIndex the index number of the service we are - * currently connecting/connected to - */ - TInt iCurrentServiceIndex; - - /** iSocketServer a connection to the socket server */ - RSocketServ iSocketServer; - - /** iSocket a socket to connect with */ - RSocket iSocket; - - /** iServiceClass the service class UUID to search for */ - TUUID iServiceClass; - - TBTDevAddr iBTServerDevice; - - CSocketsReader* iSocketReader; - CSocketsWriter* iSocketWriter; - }; - -#endif // __BTSERIALCLIENT_H__ - -// End of File