| 32 |
32 |
| 33 #include <glib.h> |
33 #include <glib.h> |
| 34 |
34 |
| 35 typedef struct _MsnSoapMessage MsnSoapMessage; |
35 typedef struct _MsnSoapMessage MsnSoapMessage; |
| 36 typedef struct _MsnSoapConnection2 MsnSoapConnection2; |
36 typedef struct _MsnSoapConnection2 MsnSoapConnection2; |
| |
37 typedef struct _MsnSoapRequest MsnSoapRequest; |
| |
38 typedef struct _MsnSoapResponse MsnSoapResponse; |
| 37 |
39 |
| 38 typedef void (*MsnSoapCallback)(MsnSoapConnection2 *conn, |
40 typedef void (*MsnSoapCallback)(MsnSoapConnection2 *conn, |
| 39 MsnSoapMessage *req, MsnSoapMessage *resp, gpointer cb_data); |
41 MsnSoapRequest *req, MsnSoapResponse *resp, gpointer cb_data); |
| 40 |
42 |
| 41 struct _MsnSoapMessage { |
43 struct _MsnSoapMessage { |
| |
44 xmlnode *xml; |
| |
45 GSList *headers; |
| |
46 |
| |
47 char *buf; |
| |
48 gsize buf_len; |
| |
49 gsize buf_count; |
| |
50 }; |
| |
51 |
| |
52 struct _MsnSoapRequest { |
| |
53 MsnSoapMessage *message; |
| 42 char *action; |
54 char *action; |
| 43 xmlnode *message; |
|
| 44 GSList *headers; |
|
| 45 |
55 |
| 46 MsnSoapCallback cb; |
56 MsnSoapCallback cb; |
| 47 gpointer data; |
57 gpointer data; |
| 48 |
58 |
| 49 char *host; |
59 char *host; |
| 50 char *path; |
60 char *path; |
| |
61 }; |
| |
62 |
| |
63 struct _MsnSoapResponse { |
| |
64 MsnSoapMessage *message; |
| |
65 int code; |
| |
66 gboolean seen_newline; |
| |
67 int body_len; |
| 51 }; |
68 }; |
| 52 |
69 |
| 53 struct _MsnSoapConnection2 { |
70 struct _MsnSoapConnection2 { |
| 54 MsnSession *session; |
71 MsnSession *session; |
| 55 |
72 |
| 60 |
77 |
| 61 guint idle_handle; |
78 guint idle_handle; |
| 62 guint io_handle; |
79 guint io_handle; |
| 63 GQueue *queue; |
80 GQueue *queue; |
| 64 |
81 |
| 65 MsnSoapMessage *current; |
82 MsnSoapRequest *request; |
| 66 MsnSoapMessage *response; |
83 MsnSoapResponse *response; |
| 67 char *buf; |
|
| 68 gsize buf_len; |
|
| 69 gsize buf_count; |
|
| 70 }; |
84 }; |
| 71 |
85 |
| 72 MsnSoapConnection2 *msn_soap_connection2_new(MsnSession *session); |
86 MsnSoapConnection2 *msn_soap_connection2_new(MsnSession *session); |
| 73 |
87 |
| 74 void msn_soap_connection2_post(MsnSoapConnection2 *conn, MsnSoapMessage *req, |
88 void msn_soap_connection2_post(MsnSoapConnection2 *conn, MsnSoapRequest *req, |
| 75 const char *host, const char *path, MsnSoapCallback cb, gpointer data); |
89 MsnSoapCallback cb, gpointer data); |
| 76 |
90 |
| 77 void msn_soap_connection2_destroy(MsnSoapConnection2 *conn); |
91 void msn_soap_connection2_destroy(MsnSoapConnection2 *conn); |
| 78 |
92 |
| 79 MsnSoapMessage *msn_soap_message_new(const char *action, xmlnode *message); |
93 MsnSoapMessage *msn_soap_message_new(void); |
| 80 |
94 |
| 81 void msn_soap_message_destroy(MsnSoapMessage *req); |
95 void msn_soap_message_destroy(MsnSoapMessage *req); |
| 82 |
96 |
| 83 void msn_soap_message_add_header(MsnSoapMessage *req, |
97 void msn_soap_message_add_header(MsnSoapMessage *req, |
| 84 const char *name, const char *value); |
98 const char *name, const char *value); |
| 85 |
99 |
| |
100 MsnSoapRequest *msn_soap_request2_new(const char *host, const char *path, |
| |
101 const char *action); |
| |
102 |
| |
103 void msn_soap_request2_destroy(MsnSoapRequest *req); |
| |
104 |
| |
105 MsnSoapResponse *msn_soap_response_new(void); |
| |
106 |
| |
107 void msn_soap_response_destroy(MsnSoapResponse *resp); |
| |
108 |
| 86 #endif |
109 #endif |