comparison libpurple/protocols/msn/soap2.h @ 20527:0034d7e89032

mostly done with soap level parsing, compiles
author Ka-Hing Cheung <khc@hxbc.us>
date Fri, 21 Sep 2007 06:50:40 +0000
parents 915e11fbaeb0
children 06527cc0f79b
comparison
equal deleted inserted replaced
20526:915e11fbaeb0 20527:0034d7e89032
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