diff -r 000000000000 -r f63038272f30 bluetoothengine/bteng/inc/btengsrvsession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/bteng/inc/btengsrvsession.h Mon Jan 18 20:28:57 2010 +0200 @@ -0,0 +1,162 @@ +/* +* Copyright (c) 2006 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: BTEng server session header definition. +* +*/ + + + +#ifndef BTENGSRVSESSION_H +#define BTENGSRVSESSION_H + +#include +#include "btengclientserver.h" + +class CSession2; +class RMessage; +class CBTEngServer; +typedef RArray RBTDevAddrArray; + + +/** + * Class CBTEngSrvSession, server-side session class. + * + * An instance of this class is created for every client session, + * and handles client messages (commands). It also handles informing + * clients of connection events. + * + * @lib bteng.lib + * @since S60 v3.2 + */ +NONSHARABLE_CLASS( CBTEngSrvSession ): public CSession2 + { + +public: + + /** + * Two-phase constructor + * + * @since S60 v3.2 + * @return Pointer to the constructed CBTEngSrvSession object. + */ + static CBTEngSrvSession* NewL(); + + /** + * Destructor + */ + virtual ~CBTEngSrvSession(); + + /** + * Notify the client of the connection event. + * + * @since S60 v3.2 + * @param aAddr The address of the remote Bluetooth device + * @param aConnStatus Status of the connection. + * @param aArray Contains the bluetooth device addresses of the remote + * devices for which profile connections exist for an + * outgoing connection request. + * @param aErr The error code indicating the result of the connection + * request. + */ + void NotifyConnectionEvent( const TBTDevAddr aAddr, + TBTEngConnectionStatus aConnStatus, + RBTDevAddrArray* aArray, TInt aErr ); + + /** + * Completes client's pairing request. + * @param aResult the resultof pairing the client will receive. + */ + TInt CompletePairRequest( TInt aResult ); + +private: // from base class CSession2 + + /** + * From CSession2. + * Processes a message from a client. + * + * @since S60 v3.2 + * @param aMessage The message containing the details of the client request. + */ + virtual void ServiceL( const RMessage2& aMessage ); + + /** + * From CSession2. + * Completes construction of the session. + * + * @since S60 v3.2 + */ + virtual void CreateL(); + +private: + + /** + * C++ default constructor + * + * @since S60 v3.2 + */ + CBTEngSrvSession(); + + /** + * Symbian 2nd-phase constructor + * + * @since S60 v3.2 + */ + void ConstructL(); + + /** + * Returns a handle to the server object. + * + * @since S60 v3.2 + * @return Pointer to the server object. + */ + CBTEngServer* Server(); + + /** + * Processes a message from a client. + * + * @since S60 v3.2 + * @param aMessage The message containing the details of the client request. + */ + void DispatchMessageL( const RMessage2& aMessage ); + + /** + * Cancels outstanding pairing request. + */ + void CancelPairRequest(); + +private: // data + /** + * Client-server message containing the thread handle of the client. + * For connection notifications. + */ + RMessage2 iNotifyConnMessage; + + /** + * For connection notifications. + * For outgoing pairing request. + */ + RMessage2 iPairMessage; + + /** + * Flag indicating if this client requested BT to be switched on temporarily. + */ + TBool iAutoSwitchOff; + + /** + * Required for queuing connection events to send to the client + */ + CDesC8ArraySeg* iConnectionEventQueue; + }; + +#endif // BTENGSRVSESSION