|
1 // btserialsession.h |
|
2 // |
|
3 // Copyright (c) 2008 - 2010 Accenture. All rights reserved. |
|
4 // This component and the accompanying materials are made available |
|
5 // under the terms of the "Eclipse Public License v1.0" |
|
6 // which accompanies this distribution, and is available |
|
7 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 // |
|
9 // Initial Contributors: |
|
10 // Accenture - Initial contribution |
|
11 // |
|
12 |
|
13 #ifndef __BTSERIALSESSION_H__ |
|
14 #define __BTSERIALSESSION_H__ |
|
15 |
|
16 #include <e32base.h> |
|
17 #include <fshell/btincomingserial.h> |
|
18 |
|
19 |
|
20 class CBtSerialServer; |
|
21 |
|
22 enum TBtSerialServerPanic |
|
23 { |
|
24 EPanicBadDescriptor, |
|
25 EPanicIllegalFunction, |
|
26 EPanicAlreadyReceiving, |
|
27 EPanicInvalidInputMode, |
|
28 EPanicWrongKeypressDesLength, |
|
29 }; |
|
30 |
|
31 void PanicClient(const RMessagePtr2& aMessage,TBtSerialServerPanic aPanic); |
|
32 |
|
33 class CBtSerialSession : public CSession2 |
|
34 , public MBtIncomingConnectionObserver |
|
35 { |
|
36 public: |
|
37 CBtSerialSession(); |
|
38 void CreateL(); |
|
39 void Send(const TDesC& aMessage); |
|
40 |
|
41 // from MBtIncomingConnectionObserver: |
|
42 virtual void BtSerialConnected(); |
|
43 virtual void BtWriteComplete(TInt aError); |
|
44 virtual void BtReadComplete(TInt aError); |
|
45 virtual void BtSerialError(TInt aError); |
|
46 virtual void BtShutdownComplete(TInt aError); |
|
47 virtual void BtNameReceived(TInt aError, const TDesC& aName); |
|
48 |
|
49 virtual void Disconnect(const RMessage2& aMessage); |
|
50 private: |
|
51 ~CBtSerialSession(); |
|
52 inline CBtSerialServer& Server(); |
|
53 void ServiceL(const RMessage2& aMessage); |
|
54 void ServiceError(const RMessage2& aMessage,TInt aError); |
|
55 |
|
56 void WaitForConnectionL(const RMessage2& aMessage); |
|
57 void CancelWaitForConnection(const RMessage2& aMessage); |
|
58 void IsConnectedL(const RMessage2& aMessage); |
|
59 void WriteL(const RMessage2& aMessage); |
|
60 void CancelWrite(const RMessage2& aMessage); |
|
61 void ReadL(const RMessage2& aMessage); |
|
62 void CancelRead(const RMessage2& aMessage); |
|
63 void GetConnectedDeviceAddrL(const RMessage2& aMessage); |
|
64 void GetConnectedDeviceNameL(const RMessage2& aMessage); |
|
65 private: |
|
66 CBluetoothIncomingSerialConnection* iConnection; |
|
67 TBool iWaitingForConnection; |
|
68 RMessagePtr2 iConnectedMessage; |
|
69 RMessagePtr2 iWriteMessage; |
|
70 RMessagePtr2 iReadMessage; |
|
71 RMessage2 iDisconnectMessage; |
|
72 RMessagePtr2 iGetNameMessage; |
|
73 |
|
74 RBuf8 iReadBuf; |
|
75 RBuf8 iWriteBuf; |
|
76 }; |
|
77 |
|
78 #endif //__BTSERIALSESSION_H__ |