|
1 /* |
|
2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "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 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Declaration of the MWlanPacketSchedulerClient class. |
|
15 * |
|
16 */ |
|
17 |
|
18 /* |
|
19 * %version: 14 % |
|
20 */ |
|
21 |
|
22 #ifndef M_WLANPACKETSCHEDULERCLIENT_H |
|
23 #define M_WLANPACKETSCHEDULERCLIENT_H |
|
24 |
|
25 #ifndef RD_WLAN_DDK |
|
26 #include <wha.h> |
|
27 #else |
|
28 #include <wlanwha.h> |
|
29 #endif |
|
30 |
|
31 class WlanContextImpl; |
|
32 |
|
33 /** |
|
34 * Packet scheduler client (callback) interface declaration |
|
35 * |
|
36 * @lib wlanumac.lib |
|
37 * @since S60 v3.1 |
|
38 */ |
|
39 class MWlanPacketSchedulerClient |
|
40 { |
|
41 |
|
42 public: |
|
43 |
|
44 /** |
|
45 * Method called when packet has been transferred to the WLAN device |
|
46 * |
|
47 * @since S60 3.1 |
|
48 * @param aCtxImpl global state machine context |
|
49 * @param aPacketId packet whose transfer is complete |
|
50 * @param aMetaHeader frame meta header |
|
51 */ |
|
52 virtual void OnPacketTransferComplete( |
|
53 WlanContextImpl& aCtxImpl, |
|
54 TUint32 aPacketId, |
|
55 TDataBuffer* aMetaHeader ) = 0; |
|
56 |
|
57 /** |
|
58 * Method called when packet has been processed |
|
59 * from WLAN devices transmit queue |
|
60 * |
|
61 * @since S60 3.1 |
|
62 * @param aCtxImpl the one and only global state machine context |
|
63 * @param aPacketId packet which transfer is complete |
|
64 * @param aRequestedRate Tx rate that was originally requested |
|
65 * @param aMulticastData ETrue if the packet in question is a multicast |
|
66 * data frame |
|
67 */ |
|
68 virtual void OnPacketSendComplete( |
|
69 WlanContextImpl& aCtxImpl, |
|
70 WHA::TStatus aStatus, |
|
71 TUint32 aPacketId, |
|
72 WHA::TRate aRate, |
|
73 TUint32 aPacketQueueDelay, |
|
74 TUint32 aMediaDelay, |
|
75 TUint aTotalTxDelay, |
|
76 TUint8 aAckFailures, |
|
77 WHA::TQueueId aQueueId, |
|
78 WHA::TRate aRequestedRate, |
|
79 TBool aMulticastData ) = 0; |
|
80 |
|
81 /** |
|
82 * Method called when packet has been flushed (removed) |
|
83 * from packet scheduler |
|
84 * |
|
85 * @since S60 3.1 |
|
86 * @param aCtxImpl global state machine context |
|
87 * @param aPacketId packet that was flushed |
|
88 * @param aMetaHeader frame meta header |
|
89 */ |
|
90 virtual void OnPacketFlushEvent( |
|
91 WlanContextImpl& aCtxImpl, |
|
92 TUint32 aPacketId, |
|
93 TDataBuffer* aMetaHeader ) = 0; |
|
94 |
|
95 /** |
|
96 * Method called when packet scheduling method should be called, |
|
97 * as there exists a packet that is suitable for transmission |
|
98 * NOTE: if any other packet scheduler method is called within this |
|
99 * context the result is undefined |
|
100 * |
|
101 * @since S60 3.1 |
|
102 * @param aCtxImpl the one and only global state machine context |
|
103 * @param aMore ETrue if another frame is also ready to be transmitted |
|
104 * EFalse otherwise |
|
105 */ |
|
106 virtual void CallPacketSchedule( |
|
107 WlanContextImpl& aCtxImpl, |
|
108 TBool aMore ) = 0; |
|
109 |
|
110 /** |
|
111 * Method called when packet push is guaranteed to succeed. |
|
112 * This method is only called once sometime after a packet push |
|
113 * has failed |
|
114 * |
|
115 * @since S60 3.1 |
|
116 * @param aCtxImpl the one and only global state machine context |
|
117 */ |
|
118 virtual void OnPacketPushPossible( WlanContextImpl& aCtxImpl ) = 0; |
|
119 }; |
|
120 |
|
121 |
|
122 #endif // M_WLANPACKETSCHEDULERCLIENT_H |