comparison src/protocols/msn/transaction.c @ 9193:502707ca1836

[gaim-migrate @ 9988] Patch by Felipe Contreras to add MSN file transfer and buddy icons. Please test and report any bugs! committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Sun, 06 Jun 2004 02:39:08 +0000
parents c30d81b4dd22
children ab6636c5a136
comparison
equal deleted inserted replaced
9192:5655dcd94d0f 9193:502707ca1836
88 88
89 return str; 89 return str;
90 } 90 }
91 91
92 void 92 void
93 msn_transaction_queue_cmd(MsnTransaction *trans, MsnCommand *cmd)
94 {
95 gaim_debug_info("msn", "queueing command.\n");
96 trans->pendent_cmd = cmd;
97 msn_command_ref(cmd);
98 }
99
100 void
101 msn_transaction_unqueue_cmd(MsnTransaction *trans, MsnCmdProc *cmdproc)
102 {
103 gaim_debug_info("msn", "unqueueing command.\n");
104 MsnCommand *cmd = trans->pendent_cmd;
105 g_return_if_fail(cmd != NULL);
106
107 msn_cmdproc_process_cmd(cmdproc, cmd);
108 msn_command_unref(cmd);
109
110 trans->pendent_cmd = NULL;
111 }
112
113 #if 0
114 void
115 msn_transaction_queue(MsnTransaction *trans, MsnTransaction *elem)
116 {
117 if (trans->queue == NULL)
118 trans->queue = g_queue_new();
119
120 g_queue_push_tail(trans->queue, elem);
121 }
122
123 void
124 msn_transaction_unqueue(MsnTransaction *trans, MsnCmdProc *cmdproc)
125 {
126 MsnTransaction *elem;
127
128 while ((elem = g_queue_pop_head(trans->queue)) != NULL)
129 msn_cmdproc_send_trans(cmdproc, elem);
130 }
131 #endif
132
133 void
93 msn_transaction_set_payload(MsnTransaction *trans, 134 msn_transaction_set_payload(MsnTransaction *trans,
94 const char *payload, int payload_len) 135 const char *payload, int payload_len)
95 { 136 {
96 g_return_if_fail(trans != NULL); 137 g_return_if_fail(trans != NULL);
97 g_return_if_fail(payload != NULL); 138 g_return_if_fail(payload != NULL);
98 139
99 trans->payload = g_strdup(payload); 140 trans->payload = g_strdup(payload);
100 trans->payload_len = payload_len ? payload_len : strlen(trans->payload); 141 trans->payload_len = payload_len ? payload_len : strlen(trans->payload);
101 } 142 }
143
144 void
145 msn_transaction_set_data(MsnTransaction *trans, void *data)
146 {
147 g_return_if_fail(trans != NULL);
148
149 trans->data = data;
150 }
151
152 void
153 msn_transaction_add_cb(MsnTransaction *trans, char *answer,
154 MsnTransCb cb, void *data)
155 {
156 g_return_if_fail(trans != NULL);
157 g_return_if_fail(answer != NULL);
158
159 if (trans->callbacks == NULL)
160 trans->callbacks = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, NULL);
161
162 g_hash_table_insert(trans->callbacks, answer, cb);
163
164 trans->data = data;
165 }