BonoboPersistFile

BonoboPersistFile

Name

BonoboPersistFile -- Interface for anything that can save / load itself from a file.

Description

The PersistFile interface is a useful interface for Bonoboizing legacy applications, however, for new / correct applications it is far preferable to implement the BonoboPersistStream interface, since this will not only result in a nice clean to your application architecture, but also allow the transparent use of local, remote, and synthetic streams.

This interface works by connecting callbacks to the methods, in a pretty deprecated fashion, it is probably better nowadays to simply sub-class the BonoboXObject and override the epv methods. Either way, after all the caveats here is an example use:

Having implemented the callbacks we then have to register them and aggregate the interface to our object: Note again, that you should be writing a BonoboPersistStream interface, however if you have already done this you might like to just have hooks through so that old apps can use the PersistFile interface: The mime type data can be extracted from gnome-vfs or gnome-mime.

Details

BONOBO_PERSIST_FILE_TYPE

#define BONOBO_PERSIST_FILE_TYPE        BONOBO_TYPE_PERSIST_FILE /* deprecated, you should use BONOBO_TYPE_PERSIST_FILE */


struct BonoboPersistFilePrivate

struct BonoboPersistFilePrivate;


struct BonoboPersistFile

struct BonoboPersistFile {
BonoboPersist persist;

char *uri;

/*
 * For the sample routines, NULL if we use the ::save and ::load
 * methods from the class
 */
BonoboPersistFileIOFn  save_fn;
BonoboPersistFileIOFn  load_fn;
void *closure;

BonoboPersistFilePrivate *priv;
};


BonoboPersistFileIOFn ()

int         (*BonoboPersistFileIOFn)        (BonoboPersistFile *pf,
                                             const CORBA_char *uri,
                                             CORBA_Environment *ev,
                                             void *closure);


BonoboPersistFileClass

typedef struct {
BonoboPersistClass parent_class;

POA_Bonobo_PersistFile__epv epv;

/* methods */
int   (*load)             (BonoboPersistFile *ps,
   const CORBA_char  *uri,
   CORBA_Environment *ev);

int   (*save)             (BonoboPersistFile *ps,
   const CORBA_char  *uri,
   CORBA_Environment *ev);

char *(*get_current_file) (BonoboPersistFile *ps,
   CORBA_Environment *ev);

} BonoboPersistFileClass;


bonobo_persist_file_new ()

BonoboPersistFile* bonobo_persist_file_new  (BonoboPersistFileIOFn load_fn,
                                             BonoboPersistFileIOFn save_fn,
                                             const gchar *iid,
                                             void *closure);

Creates a BonoboPersistFile object. The load_fn and save_fn parameters might be NULL. If this is the case, the load and save operations are performed by the class load and save methods


bonobo_persist_file_construct ()

BonoboPersistFile* bonobo_persist_file_construct
                                            (BonoboPersistFile *ps,
                                             BonoboPersistFileIOFn load_fn,
                                             BonoboPersistFileIOFn save_fn,
                                             const gchar *iid,
                                             void *closure);

Initializes the BonoboPersistFile object. The load_fn and save_fn parameters might be NULL. If this is the case, the load and save operations are performed by the class load and save methods