2001-07-05 17:37:53 +00:00
|
|
|
/**
|
|
|
|
* bonobo-config-archiver.h: xml configuration database implementation, with
|
|
|
|
* interface to the archiver
|
|
|
|
*
|
|
|
|
* Author:
|
|
|
|
* Dietmar Maurer (dietmar@ximian.com)
|
|
|
|
* Bradford Hovinen <hovinen@ximian.com>
|
|
|
|
*
|
|
|
|
* Copyright 2000 Ximian, Inc.
|
|
|
|
*/
|
|
|
|
#ifndef __BONOBO_CONFIG_ARCHIVER_H__
|
|
|
|
#define __BONOBO_CONFIG_ARCHIVER_H__
|
|
|
|
|
|
|
|
#include <stdio.h>
|
2001-07-05 17:41:47 +00:00
|
|
|
#include <bonobo-conf/bonobo-config-database.h>
|
2001-07-05 17:37:53 +00:00
|
|
|
#include <gnome-xml/tree.h>
|
|
|
|
#include <gnome-xml/parser.h>
|
|
|
|
#include <bonobo/bonobo-event-source.h>
|
2001-07-25 02:58:40 +00:00
|
|
|
#include <bonobo/bonobo-property-bag.h>
|
2001-07-05 17:37:53 +00:00
|
|
|
|
2001-08-20 15:47:57 +00:00
|
|
|
#include "archiver-client.h"
|
2001-07-05 17:37:53 +00:00
|
|
|
|
|
|
|
BEGIN_GNOME_DECLS
|
|
|
|
|
2001-09-12 15:30:41 +00:00
|
|
|
#define EX_SET_NOT_FOUND(ev) bonobo_exception_set (ev, ex_Bonobo_Moniker_InterfaceNotFound)
|
|
|
|
|
2001-07-05 17:37:53 +00:00
|
|
|
#define BONOBO_CONFIG_ARCHIVER_TYPE (bonobo_config_archiver_get_type ())
|
|
|
|
#define BONOBO_CONFIG_ARCHIVER(o) (GTK_CHECK_CAST ((o), BONOBO_CONFIG_ARCHIVER_TYPE, BonoboConfigArchiver))
|
|
|
|
#define BONOBO_CONFIG_ARCHIVER_CLASS(k) (GTK_CHECK_CLASS_CAST((k), BONOBO_CONFIG_ARCHIVER_TYPE, BonoboConfigArchiverClass))
|
|
|
|
#define BONOBO_IS_CONFIG_ARCHIVER(o) (GTK_CHECK_TYPE ((o), BONOBO_CONFIG_ARCHIVER_TYPE))
|
|
|
|
#define BONOBO_IS_CONFIG_ARCHIVER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), BONOBO_CONFIG_ARCHIVER_TYPE))
|
|
|
|
|
|
|
|
typedef struct _DirData DirData;
|
|
|
|
|
|
|
|
struct _DirData {
|
|
|
|
char *name;
|
|
|
|
GSList *entries;
|
|
|
|
GSList *subdirs;
|
|
|
|
xmlNodePtr node;
|
|
|
|
DirData *dir;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char *name;
|
|
|
|
CORBA_any *value;
|
|
|
|
xmlNodePtr node;
|
|
|
|
DirData *dir;
|
|
|
|
} DirEntry;
|
|
|
|
|
|
|
|
typedef struct _BonoboConfigArchiver BonoboConfigArchiver;
|
|
|
|
|
|
|
|
struct _BonoboConfigArchiver {
|
2001-09-28 14:17:25 +00:00
|
|
|
BonoboConfigDatabase base;
|
2001-08-20 15:47:57 +00:00
|
|
|
|
2001-09-28 14:17:25 +00:00
|
|
|
char *filename;
|
|
|
|
FILE *fp;
|
|
|
|
xmlDocPtr doc;
|
|
|
|
DirData *dir;
|
|
|
|
guint time_id;
|
2001-08-20 15:47:57 +00:00
|
|
|
|
2001-09-28 14:17:25 +00:00
|
|
|
ConfigArchiver_Archive archive;
|
|
|
|
ConfigArchiver_Location location;
|
|
|
|
gchar *backend_id;
|
|
|
|
gchar *moniker;
|
2001-08-20 15:47:57 +00:00
|
|
|
|
2001-09-28 14:17:25 +00:00
|
|
|
BonoboEventSource *es;
|
|
|
|
BonoboPropertyBag *pb;
|
|
|
|
|
|
|
|
Bonobo_EventSource_ListenerId listener_id;
|
2001-09-28 21:04:53 +00:00
|
|
|
gboolean is_up_to_date;
|
2001-07-05 17:37:53 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
BonoboConfigDatabaseClass parent_class;
|
|
|
|
} BonoboConfigArchiverClass;
|
|
|
|
|
|
|
|
|
|
|
|
GtkType
|
|
|
|
bonobo_config_archiver_get_type (void);
|
|
|
|
|
|
|
|
Bonobo_ConfigDatabase
|
2001-08-20 15:47:57 +00:00
|
|
|
bonobo_config_archiver_new (Bonobo_Moniker parent,
|
|
|
|
const Bonobo_ResolveOptions *options,
|
2001-09-12 15:30:41 +00:00
|
|
|
const char *moniker,
|
2001-08-20 15:47:57 +00:00
|
|
|
CORBA_Environment *ev);
|
2001-07-05 17:37:53 +00:00
|
|
|
|
|
|
|
END_GNOME_DECLS
|
|
|
|
|
|
|
|
#endif /* ! __BONOBO_CONFIG_ARCHIVER_H__ */
|