## bonobo-storage

bonobo-storage — Abstract implementation of the Bonobo::Storage interface

## Synopsis

    void                bonobo_storage_copy_to              (Bonobo_Storage src,
                                                             Bonobo_Storage dest,
                                                             CORBA_Environment *ev);

## Description

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 23. 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));
    }

## Details

### bonobo_storage_copy_to ()

    void                bonobo_storage_copy_to              (Bonobo_Storage src,
                                                             Bonobo_Storage dest,
                                                             CORBA_Environment *ev);

Implements a pure CORBA method for copying one storage into another, this is used by several BonoboStorage implemetations where a fast case localy copy cannot work.

`src` : | the source storage
`dest` : | the destination storage
`ev` : | CORBA exception environment

## See Also

BonoboPersist BonoboPersistStream