/*
* This file is part of Cockpit.
*
* Copyright (C) 2014 Red Hat, Inc.
*
* Cockpit is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* Cockpit is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Cockpit; If not, see .
*/
#ifndef __COCKPIT_DBUS_CACHE_H
#define __COCKPIT_DBUS_CACHE_H
#include
G_BEGIN_DECLS
#define COCKPIT_TYPE_DBUS_CACHE (cockpit_dbus_cache_get_type ())
#define COCKPIT_DBUS_CACHE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), COCKPIT_TYPE_DBUS_CACHE, CockpitDBusCache))
#define COCKPIT_IS_DBUS_CACHE(k) (G_TYPE_CHECK_INSTANCE_TYPE ((k), COCKPIT_TYPE_DBUS_CACHE))
typedef struct _CockpitDBusCache CockpitDBusCache;
typedef struct _CockpitDBusCacheClass CockpitDBusCacheClass;
struct _CockpitDBusCacheClass {
GObjectClass parent;
void (* meta) (CockpitDBusCache *self,
GDBusInterfaceInfo *iface);
void (* update) (CockpitDBusCache *self,
const gchar *path,
GDBusInterfaceInfo *iface);
};
typedef void (* CockpitDBusIntrospectFunc) (CockpitDBusCache *cache,
GDBusInterfaceInfo *iface,
gpointer user_data);
typedef void (* CockpitDBusBarrierFunc) (CockpitDBusCache *cache,
gpointer user_data);
GType cockpit_dbus_cache_get_type (void) G_GNUC_CONST;
CockpitDBusCache * cockpit_dbus_cache_new (GDBusConnection *connection,
const gchar *name,
const gchar *logname,
GHashTable *interface_info);
void cockpit_dbus_cache_barrier (CockpitDBusCache *self,
CockpitDBusBarrierFunc callback,
gpointer user_data);
void cockpit_dbus_cache_poke (CockpitDBusCache *self,
const gchar *path,
const gchar *iface);
void cockpit_dbus_cache_scrape (CockpitDBusCache *self,
GVariant *data);
void cockpit_dbus_cache_watch (CockpitDBusCache *self,
const gchar *path,
gboolean is_namespace,
const gchar *interface);
gboolean cockpit_dbus_cache_unwatch (CockpitDBusCache *self,
const gchar *path,
gboolean is_namespace,
const gchar *interface);
void cockpit_dbus_cache_introspect (CockpitDBusCache *self,
const gchar *path,
const gchar *interface,
CockpitDBusIntrospectFunc callback,
gpointer user_data);
GHashTable * cockpit_dbus_interface_info_new (void);
GDBusInterfaceInfo * cockpit_dbus_interface_info_lookup (GHashTable *interface_info,
const gchar *interface_name);
void cockpit_dbus_interface_info_push (GHashTable *interface_info,
GDBusInterfaceInfo *interface);
G_END_DECLS
#endif /* __COCKPIT_DBUS_CACHE_H */