Changeset 5
- Timestamp:
- 11/07/06 16:53:52 (2 years ago)
- Files:
-
- maemo-blog/trunk/blog-blogger.c (modified) (15 diffs)
- maemo-blog/trunk/blog-metaweblog.c (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
maemo-blog/trunk/blog-blogger.c
r2 r5 9 9 #include "blog-plugin.h" 10 10 11 struct BloggerPluginData { 12 xmlrpc_client *client; 13 xmlrpc_env env; 14 }; 15 11 16 static gboolean _event_loop(gpointer user_data) 12 17 { 13 (void)user_data;14 15 xmlrpc_client_event_loop_finish_ asynch_timeout(20);18 struct BloggerPluginData *data = user_data; 19 20 xmlrpc_client_event_loop_finish_timeout(data->client, 20); 16 21 17 22 return TRUE; … … 93 98 struct xmlrpc_curl_xportparms transportParms; 94 99 struct xmlrpc_clientparms clientParms; 100 struct BloggerPluginData *data; 95 101 96 102 retval->connect = blog_blogger_connect; … … 102 108 retval->uploadImage = blog_blogger_upload_image; 103 109 104 retval->plugin_data = g_new0(xmlrpc_env, 1);110 retval->plugin_data = data = g_new0(struct BloggerPluginData, 1); 105 111 retval->name = g_strdup("Blogger 1.0"); 106 112 … … 115 121 transportParms.no_ssl_verifyhost = 1; 116 122 117 xmlrpc_env_init( (xmlrpc_env *)retval->plugin_data);118 xmlrpc_client_ cleanup();119 xmlrpc_client_ init2((xmlrpc_env *)retval->plugin_data, XMLRPC_CLIENT_NO_FLAGS, (char *)"maemo-blog", (char *)"0.0.1", &clientParms, XMLRPC_CPSIZE(transportparm_size));123 xmlrpc_env_init(&data->env); 124 xmlrpc_client_setup_global_const(&data->env); 125 xmlrpc_client_create(&data->env, XMLRPC_CLIENT_NO_FLAGS, (char *)"maemo-blog", (char *)"0.0.1", &clientParms, XMLRPC_CPSIZE(transportparm_size), &data->client); 120 126 121 127 return retval; … … 172 178 { 173 179 struct BlogBloggerConnectedClosure *clo = g_new0(struct BlogBloggerConnectedClosure, 1); 180 struct BloggerPluginData *data = plugin->plugin_data; 174 181 clo->cb = cb; 175 182 clo->user_data = user_data; … … 179 186 clo->self = plugin; 180 187 181 xmlrpc_client_call_asynch((gchar *)uri, 188 xmlrpc_client_start_rpcf(&data->env, 189 data->client, 190 (gchar *)uri, 182 191 (char *)"blogger.getUsersBlogs", 183 192 _blog_blogger_connected, … … 188 197 pass); 189 198 190 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);199 clo->timeout_id = g_timeout_add(500, _event_loop, data); 191 200 192 201 return TRUE; … … 243 252 gchar *content; 244 253 struct BlogBloggerPostedClosure *clo; 254 struct BloggerPluginData *data = blog->plugin->plugin_data; 245 255 246 256 if (!post || !post->content) { … … 259 269 post->content); 260 270 261 xmlrpc_client_call_asynch(blog->url, 271 xmlrpc_client_start_rpcf(&data->env, 272 data->client, 273 blog->url, 262 274 (char *)"blogger.newPost", 263 275 _blog_blogger_posted, … … 273 285 content = NULL; 274 286 275 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);287 clo->timeout_id = g_timeout_add(500, _event_loop, data); 276 288 277 289 return TRUE; … … 283 295 gchar *content; 284 296 struct BlogBloggerPostedClosure *clo; 297 struct BloggerPluginData *data = blog->plugin->plugin_data; 285 298 286 299 if (!post || !post->content || !post->id) { … … 299 312 post->content); 300 313 301 xmlrpc_client_call_asynch(blog->url, (char *)"blogger.editPost", 314 xmlrpc_client_start_rpcf(&data->env, 315 data->client, 316 blog->url, (char *)"blogger.editPost", 302 317 _blog_blogger_posted, 303 318 clo, … … 311 326 g_free(content); 312 327 313 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);328 clo->timeout_id = g_timeout_add(500, _event_loop, data); 314 329 315 330 return TRUE; … … 391 406 { 392 407 struct BlogBloggerFetchedClosure *clo = g_new0(struct BlogBloggerFetchedClosure, 1); 408 struct BloggerPluginData *data = blog->plugin->plugin_data; 393 409 clo->blog = blog; 394 410 clo->cb = cb; 395 411 clo->user_data = user_data; 396 412 397 xmlrpc_client_call_asynch(blog->url, 413 xmlrpc_client_start_rpcf(&data->env, 414 data->client, 415 blog->url, 398 416 (char *)"blogger.getRecentPosts", 399 417 _blog_blogger_got_recent, … … 406 424 15); 407 425 408 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);426 clo->timeout_id = g_timeout_add(500, _event_loop, data); 409 427 } 410 428 411 429 static void blog_blogger_unload(BlogPlugin *plugin) 412 430 { 413 xmlrpc_env_clean((xmlrpc_env *)plugin->plugin_data); 431 struct BloggerPluginData *data = plugin->plugin_data; 432 xmlrpc_env_clean(&data->env); 433 xmlrpc_client_destroy(data->client); 414 434 g_free(plugin->plugin_data); 415 435 g_free(plugin->name); maemo-blog/trunk/blog-metaweblog.c
r2 r5 10 10 #define die_if_fault_occurred(x) die_if_fault(x, __FUNCTION__, __LINE__) 11 11 12 struct MetaweblogPluginData { 13 xmlrpc_client *client; 14 xmlrpc_env env; 15 }; 16 12 17 static gboolean _event_loop(gpointer user_data) 13 18 { 14 (void)user_data;15 16 xmlrpc_client_event_loop_finish_ asynch_timeout(20);19 struct MetaweblogPluginData *data = user_data; 20 21 xmlrpc_client_event_loop_finish_timeout(data->client, 20); 17 22 18 23 return TRUE; … … 134 139 struct xmlrpc_curl_xportparms transportParms; 135 140 struct xmlrpc_clientparms clientParms; 136 xmlrpc_env env;141 struct MetaweblogPluginData *data; 137 142 138 143 memset(&transportParms, 0, sizeof(transportParms)); … … 155 160 156 161 retval->name = g_strdup("MetaWebLog"); 157 xmlrpc_env_init(&env); 158 xmlrpc_client_init2(&env, XMLRPC_CLIENT_NO_FLAGS, (char *)"maemo-blog", (char *)"0.0.1", &clientParms, XMLRPC_CPSIZE(transportparm_size)); 159 xmlrpc_env_clean(&env); 162 retval->plugin_data = data = g_new0(struct MetaweblogPluginData, 1); 163 xmlrpc_env_init(&data->env); 164 xmlrpc_client_setup_global_const(&data->env); 165 xmlrpc_client_create(&data->env, XMLRPC_CLIENT_NO_FLAGS, (char *)"maemo-blog", (char *)"0.0.1", &clientParms, XMLRPC_CPSIZE(transportparm_size), &data->client); 166 printf("Client: %p\n", data->client); 167 die_if_fault_occurred(&data->env); 160 168 return retval; 161 169 } … … 211 219 { 212 220 struct BlogMetaweblogConnectedClosure *clo = g_new0(struct BlogMetaweblogConnectedClosure, 1); 221 struct MetaweblogPluginData *data = plugin->plugin_data; 222 213 223 clo->cb = cb; 214 224 clo->user_data = user_data; … … 218 228 clo->self = plugin; 219 229 220 xmlrpc_client_call_asynch((gchar *)uri, 230 xmlrpc_client_start_rpcf(&data->env, 231 data->client, 232 (gchar *)uri, 221 233 (char *)"metaWeblog.getUsersBlogs", 222 234 _blog_metaweblog_connected, … … 227 239 pass); 228 240 229 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);241 clo->timeout_id = g_timeout_add(500, _event_loop, data); 230 242 231 243 return TRUE; … … 280 292 gboolean publish, BlogPostCb cb, gpointer user_data) 281 293 { 282 xmlrpc_env env;283 294 xmlrpc_value *array; 284 295 GSList *iter; 285 296 struct BlogMetaweblogPostedClosure *clo; 297 struct MetaweblogPluginData *data = blog->plugin->plugin_data; 286 298 287 299 if (!post || !post->content) { … … 296 308 clo->user_data = user_data; 297 309 298 xmlrpc_env_init(&env); 299 array = xmlrpc_build_value(&env, "()"); 300 die_if_fault_occurred(&env); 310 array = xmlrpc_build_value(&data->env, "()"); 311 die_if_fault_occurred(&data->env); 301 312 302 313 for (iter = post->categories; iter; iter = iter->next) 303 314 { 304 315 BlogCategory *cat = (BlogCategory *)iter->data; 305 xmlrpc_value *val = xmlrpc_build_value(& env, "s",316 xmlrpc_value *val = xmlrpc_build_value(&data->env, "s", 306 317 cat->name); 307 die_if_fault_occurred(&env); 308 xmlrpc_array_append_item(&env, array, val); 309 die_if_fault_occurred(&env); 310 } 311 312 xmlrpc_client_call_asynch(blog->url, (char *)"metaWeblog.newPost", 318 die_if_fault_occurred(&data->env); 319 xmlrpc_array_append_item(&data->env, array, val); 320 die_if_fault_occurred(&data->env); 321 } 322 323 xmlrpc_client_start_rpcf(&data->env, 324 data->client, 325 blog->url, (char *)"metaWeblog.newPost", 313 326 _blog_metaweblog_posted, 314 327 clo, … … 327 340 publish); 328 341 329 clo->timeout_id = g_timeout_add(500, _event_loop, NULL); 330 331 xmlrpc_env_clean(&env); 342 clo->timeout_id = g_timeout_add(500, _event_loop, data); 332 343 333 344 return TRUE; … … 341 352 GSList *iter; 342 353 struct BlogMetaweblogPostedClosure *clo; 354 struct MetaweblogPluginData *data = blog->plugin->plugin_data; 343 355 344 356 if (!post || !post->content || !post->id) { … … 367 379 } 368 380 369 xmlrpc_client_call_asynch(blog->url, 381 xmlrpc_client_start_rpcf(&data->env, 382 data->client, 383 blog->url, 370 384 (char *)"metaWeblog.editPost", 371 385 _blog_metaweblog_posted, … … 386 400 387 401 xmlrpc_env_clean(&env); 388 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);402 clo->timeout_id = g_timeout_add(500, _event_loop, data); 389 403 390 404 return TRUE; … … 431 445 { 432 446 struct BlogMetaweblogFetchedClosure *clo = g_new0(struct BlogMetaweblogFetchedClosure, 1); 447 struct MetaweblogPluginData *data = blog->plugin->plugin_data; 433 448 clo->blog = blog; 434 449 clo->cb = cb; 435 450 clo->user_data = user_data; 436 451 437 xmlrpc_client_call_asynch(blog->url, (char *)"metaWeblog.getCategories", 452 xmlrpc_client_start_rpcf(&data->env, 453 data->client, 454 blog->url, (char *)"metaWeblog.getCategories", 438 455 _blog_metaweblog_got_categories, 439 456 clo, … … 442 459 blog->user, 443 460 blog->pass); 444 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);461 clo->timeout_id = g_timeout_add(500, _event_loop, data); 445 462 } 446 463 … … 510 527 { 511 528 struct BlogMetaweblogFetchedClosure *clo = g_new0(struct BlogMetaweblogFetchedClosure, 1); 529 struct MetaweblogPluginData *data = blog->plugin->plugin_data; 512 530 clo->blog = blog; 513 531 clo->cb = cb; 514 532 clo->user_data = user_data; 515 533 516 xmlrpc_client_call_asynch(blog->url, 534 xmlrpc_client_start_rpcf(&data->env, 535 data->client, 536 blog->url, 517 537 (char *)"metaWeblog.getRecentPosts", 518 538 _blog_metaweblog_got_recent, … … 524 544 15); 525 545 526 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);546 clo->timeout_id = g_timeout_add(500, _event_loop, data); 527 547 } 528 548 529 549 static void blog_metaweblog_unload(BlogPlugin *plugin) 530 550 { 551 struct MetaweblogPluginData *data = plugin->plugin_data; 552 xmlrpc_env_clean(&data->env); 553 xmlrpc_client_destroy(data->client); 554 g_free(data); 531 555 g_free(plugin->name); 532 556 g_free(plugin); … … 563 587 { 564 588 struct BlogMetaweblogUploadedClosure *clo = g_new0(struct BlogMetaweblogUploadedClosure, 1); 589 struct MetaweblogPluginData *data = blog->plugin->plugin_data; 565 590 566 591 clo->cb = cb; … … 568 593 clo->image_name = g_strdup(image_name); 569 594 clo->blog = blog; 570 xmlrpc_client_call_asynch(blog->url, 595 xmlrpc_client_start_rpcf(&data->env, 596 data->client, 597 blog->url, 571 598 (char *)"metaWeblog.newMediaObject", 572 599 _blog_metaweblog_uploaded, … … 585 612 ); 586 613 587 clo->timeout_id = g_timeout_add(500, _event_loop, NULL);614 clo->timeout_id = g_timeout_add(500, _event_loop, data); 588 615 589 616 return TRUE;
