| 26 #define _QQ_SEND_QUEUE_H_ |
26 #define _QQ_SEND_QUEUE_H_ |
| 27 |
27 |
| 28 #include <glib.h> |
28 #include <glib.h> |
| 29 #include "qq.h" |
29 #include "qq.h" |
| 30 |
30 |
| 31 #define QQ_SENDQUEUE_TIMEOUT 5000 /* in 1/1000 sec */ |
31 void qq_trans_append(qq_data *qd, guint8 *buf, gint bus_len, guint16 cmd, guint16 seq); |
| |
32 void qq_trans_remove(qq_data *qd, gpointer data); |
| |
33 gpointer qq_trans_find(qq_data *qd, guint16 seq); |
| |
34 void qq_trans_remove_all(qq_data *qd); |
| 32 |
35 |
| 33 typedef struct _qq_sendpacket qq_sendpacket; |
36 gint qq_trans_scan(qq_data *qd, gint *start, guint8 *buf, gint maxlen, guint16 *cmd, gint *retries); |
| 34 |
37 |
| 35 struct _qq_sendpacket { |
38 void qq_packet_push(qq_data *qd, guint16 cmd, guint16 seq, guint8 *data, gint data_len); |
| 36 gint fd; |
39 gint qq_packet_pop(qq_data *qd, guint16 *cmd, guint16* seq, guint8 *data, gint max_len); |
| 37 gint len; |
40 void qq_packet_remove_all(qq_data *qd); |
| 38 guint8 *buf; |
|
| 39 guint16 cmd; |
|
| 40 guint16 send_seq; |
|
| 41 gint resend_times; |
|
| 42 time_t sendtime; |
|
| 43 }; |
|
| 44 |
|
| 45 void qq_sendqueue_free(qq_data *qd); |
|
| 46 |
|
| 47 void qq_sendqueue_remove(qq_data *qd, guint16 send_seq); |
|
| 48 gboolean qq_sendqueue_timeout_callback(gpointer data); |
|
| 49 |
41 |
| 50 #endif |
42 #endif |