00001 /* 00002 * Microfeed - Backend for accessing feed-based services 00003 * Copyright (C) 2009 Henrik Hedberg <henrik.hedberg@innologies.fi> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License version 2 as published by 00007 * the Free Software Foundation. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License along 00015 * with this program; if not, write to the Free Software Foundation, Inc., 00016 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00017 */ 00018 00019 #ifndef MICROFEEDPROVIDER_H 00020 #define MICROFEEDPROVIDER_H 00021 00022 #define DBUS_API_SUBJECT_TO_CHANGE 00023 #include <dbus/dbus.h> 00024 00044 typedef struct _MicrofeedProvider MicrofeedProvider; 00045 00048 #include <microfeed-provider/microfeedpublisher.h> 00049 #include <microfeed-common/microfeedconfiguration.h> 00050 00056 typedef void (*MicrofeedProviderNoMorePublishersCallback)(MicrofeedProvider* provider, void* user_data); 00057 00058 typedef struct _MicrofeedProviderCallbacks { 00059 MicrofeedProviderNoMorePublishersCallback no_more_publishers; 00060 MicrofeedPublisherCallbacks publisher_callbacks; 00061 } MicrofeedProviderCallbacks; 00062 00063 MicrofeedProvider* microfeed_provider_new(const char* bus_name, DBusConnection* connection, MicrofeedProviderCallbacks* callbacks, void* user_data); 00064 void microfeed_provider_free(MicrofeedProvider* provider); 00065 void microfeed_provider_add_publisher(MicrofeedProvider* provider, MicrofeedPublisher* publisher); 00066 void microfeed_provider_remove_publisher(MicrofeedProvider* provider, MicrofeedPublisher* publisher); 00067 DBusConnection* microfeed_provider_get_dbus_connection(MicrofeedProvider* provider); 00068 const char* microfeed_provider_get_bus_name(MicrofeedProvider* provider); 00069 00075 #endif