#include "konasearch.h" #include #include static void kona_search_posts_soup_cb(GObject *object, GAsyncResult *result, gpointer user_data); /*** GLIB object start ***/ struct _KonaSearch { GObject parent_instance; // struct of parent (inherit) gchar *searchString; SoupSession *postsSession; GCancellable *postsCancellable; }; G_DEFINE_TYPE(KonaSearch, kona_search, G_TYPE_OBJECT) static void kona_search_class_init(KonaSearchClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); //object_class->set_property = kona_search_set_property; //object_class->get_property = kona_search_get_property; object_class->dispose = kona_search_dispose; object_class->finalize = kona_search_finalize; } static void kona_search_init (KonaSearch *self) { printf("kona_search_init\n"); } static void kona_search_dispose(GObject *self) { G_OBJECT_CLASS (kona_search_parent_class)->dispose((GObject*) self); } static void kona_search_finalize(GObject *self) { KonaSearch *ks = (KonaSearch*) self; //g_free(ks->postsSession); g_free(ks->searchString); G_OBJECT_CLASS (kona_search_parent_class)->finalize ((GObject*) self); } KonaSearch *kona_search_new(gchar *search) { KonaSearch *ks; ks = g_object_new(KONA_TYPE_SEARCH, 0); ks->searchString = g_strdup(search); return G_OBJECT(ks); } /*** GLIB object end ***/ void kona_search_start(KonaSearch *self) { SoupMessage *msg; gchar *url; self->postsSession = soup_session_new(); self->postsCancellable = g_cancellable_new(); url = g_strdup_printf("http://konachan.com/post.xml?tag=%s", self->searchString); msg = soup_message_new("GET", url); g_free(url); soup_session_send_async(self->postsSession, msg, self->postsCancellable, kona_search_posts_soup_cb, self); } static void kona_search_posts_soup_cb(GObject *object, GAsyncResult *result, gpointer user_data) { GInputStream *stream; GError *error = NULL; stream = soup_session_send_finish (SOUP_SESSION (object), result, &error); printf("RECEIVED!!\n"); fflush(stdout); // MSG will be unref'd automatically }