| Libbonobo Reference Manual | |||
|---|---|---|---|
| <<< Previous Page | Home | Up | Next Page >>> | 
| #define BonoboStream #define BONOBO_STREAM (o) #define BONOBO_STREAM_CLASS (k) #define BonoboStorage #define BONOBO_STORAGE (o) #define BONOBO_STORAGE_CLASS (k) void bonobo_storage_copy_to (Bonobo_Storage src, Bonobo_Storage dest, CORBA_Environment *ev); | 
The BonoboStorage C interface is extremely simple, this is since the CORBA client interface is where the action occurs. It is anticipated that relatively few people need to implement the Bonobo/Storage IDL interface.
The common entry point for BonoboStorage is that of opening a storage using the bonobo_storage_open function, perhaps by a container to use to persist a compound document:
Example 1. An example storage use case
| void
container_save (SampleApp         *app,
                const char        *filename,
                CORBA_Environment *ev)
{
	BonoboStorage *storage;
	Bonobo_Storage corba_storage;
	GList *components;
	int i;
	storage = bonobo_storage_open (STORAGE_TYPE, filename,
				       Bonobo_Storage_READ |
				       Bonobo_Storage_WRITE |
				       Bonobo_Storage_CREATE,
				       0664);
	g_return_if_fail (storage);
	corba_storage = BONOBO_OBJREF (storage);
	... 
	Serialize components to streams created in the storage
	...
	Bonobo_Storage_commit (corba_storage, ev);
	CORBA_exception_free (ev);
	bonobo_object_unref (BONOBO_OBJECT (storage));
}
      |