matecomponent-storage

matecomponent-storage — Abstract implementation of the MateComponent::Storage interface

Synopsis

void                matecomponent_storage_copy_to              (MateComponent_Storage src,
                                                         MateComponent_Storage dest,
                                                         CORBA_Environment *ev);

Description

The MateComponentStorage 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 MateComponent/Storage IDL interface.

The common entry point for MateComponentStorage is that of opening a storage using the matecomponent_storage_open function, perhaps by a container to use to persist a compound document:

Example 23. An example storage use case

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void
container_save (SampleApp         *app,
                const char        *filename,
                CORBA_Environment *ev)
{
    MateComponentStorage *storage;
    MateComponent_Storage corba_storage;
    GList *components;
    int i;
    storage = matecomponent_storage_open (STORAGE_TYPE, filename,
                       MateComponent_Storage_READ |
                       MateComponent_Storage_WRITE |
                       MateComponent_Storage_CREATE,
                       0664);
    g_return_if_fail (storage);
    corba_storage = MATECOMPONENT_OBJREF (storage);
    ...
    Serialize components to streams created in the storage
    ...
    MateComponent_Storage_commit (corba_storage, ev);
    CORBA_exception_free (ev);
    matecomponent_object_unref (MATECOMPONENT_OBJECT (storage));
}


Details

matecomponent_storage_copy_to ()

void                matecomponent_storage_copy_to              (MateComponent_Storage src,
                                                         MateComponent_Storage dest,
                                                         CORBA_Environment *ev);

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

src :

the source storage

dest :

the destination storage

ev :

CORBA exception environment

See Also

MateComponentPersist MateComponentPersistStream