## bonobo-shlib-factory

bonobo-shlib-factory

## Synopsis

                        BonoboShlibFactory;
                        BonoboShlibFactoryClass;
    BonoboShlibFactory * bonobo_shlib_factory_construct     (BonoboShlibFactory *factory,
                                                             const char *act_iid,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             GClosure *closure);
    BonoboShlibFactory * bonobo_shlib_factory_new           (const char *component_id,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             BonoboFactoryCallback factory_cb,
                                                             gpointer user_data);
    BonoboShlibFactory * bonobo_shlib_factory_new_closure   (const char *act_iid,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             GClosure *factory_closure);
    Bonobo_Unknown      bonobo_shlib_factory_std            (const char *component_id,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             BonoboFactoryCallback factory_cb,
                                                             gpointer user_data,
                                                             CORBA_Environment *ev);
    #define             BONOBO_OAF_SHLIB_FACTORY            (oafiid,
                                                             descr,
                                                             fn,
                                                             data)
    #define             BONOBO_OAF_SHLIB_FACTORY_MULTI      (oafiid,
                                                             descr,
                                                             fn,
                                                             data)
    #define             BONOBO_ACTIVATION_SHLIB_FACTORY     (oafiid,
                                                             descr,
                                                             fn,
                                                             data)

## Object Hierarchy

      GObject
       +----BonoboObject
             +----BonoboGenericFactory
                   +----BonoboShlibFactory

## Description

## Details

### BonoboShlibFactory

    typedef struct _BonoboShlibFactory BonoboShlibFactory;

### BonoboShlibFactoryClass

    typedef struct {
    	BonoboGenericFactoryClass parent_class;
    } BonoboShlibFactoryClass;

### bonobo_shlib_factory_construct ()

    BonoboShlibFactory * bonobo_shlib_factory_construct     (BonoboShlibFactory *factory,
                                                             const char *act_iid,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             GClosure *closure);

Initializes `c_factory` with the supplied data.

`factory` : | The object to be initialized.
`act_iid` : | The GOAD id that the new factory will implement.
`poa` : | the poa.
`act_impl_ptr` : | Activation shlib handle
`closure` : | The closure used to create new GnomeShlib object instances.
Returns : | The initialized BonoboShlibFactory object.

### bonobo_shlib_factory_new ()

    BonoboShlibFactory * bonobo_shlib_factory_new           (const char *component_id,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             BonoboFactoryCallback factory_cb,
                                                             gpointer user_data);

This is a helper routine that simplifies the creation of factory objects for GNOME objects. The `factory` function will be invoked by the CORBA server when a request arrives to create a new instance of an object supporting the Bonobo::Shlib interface. The factory callback routine is passed the `data` pointer to provide the creation function with some state information.

`component_id` : | The GOAD id that this factory implements
`poa` : | the poa.
`act_impl_ptr` : | Activation shlib handle
`factory_cb` : | A callback which is used to create new BonoboObject instances.
`user_data` : | The closure data to be passed to the `factory` callback routine.
Returns : | A BonoboShlibFactory object that has an activated Bonobo::ShlibFactory object that has registered with the GNOME name server.

### bonobo_shlib_factory_new_closure ()

    BonoboShlibFactory * bonobo_shlib_factory_new_closure   (const char *act_iid,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             GClosure *factory_closure);

This is a helper routine that simplifies the creation of factory objects for GNOME objects. The `factory_closure` closure will be invoked by the CORBA server when a request arrives to create a new instance of an object supporting the Bonobo::Shlib interface. The factory callback routine is passed the `data` pointer to provide the creation function with some state information.

`act_iid` : | The GOAD id that this factory implements
`poa` : | the poa.
`act_impl_ptr` : | Activation shlib handle
`factory_closure` : | A closure which is used to create new BonoboObject instances.
Returns : | A BonoboShlibFactory object that has an activated Bonobo::ShlibFactory object that has registered with the GNOME name server.

### bonobo_shlib_factory_std ()

    Bonobo_Unknown      bonobo_shlib_factory_std            (const char *component_id,
                                                             PortableServer_POA poa,
                                                             gpointer act_impl_ptr,
                                                             BonoboFactoryCallback factory_cb,
                                                             gpointer user_data,
                                                             CORBA_Environment *ev);

A Generic std shlib routine so we don't stick a load of code inside a public macro.

Returns : | 0 on success, 1 on failure.

### BONOBO_OAF_SHLIB_FACTORY()

    #define             BONOBO_OAF_SHLIB_FACTORY(oafiid, descr, fn, data)

Deprecated. See `BONOBO_ACTIVATION_SHLIB_FACTORY()`.

`oafiid` : |
`descr` : |
`fn` : |
`data` : |

### BONOBO_OAF_SHLIB_FACTORY_MULTI()

    #define             BONOBO_OAF_SHLIB_FACTORY_MULTI(oafiid, descr, fn, data)

Deprecated. See `BONOBO_ACTIVATION_SHLIB_FACTORY()`.

`oafiid` : |
`descr` : |
`fn` : |
`data` : |

### BONOBO_ACTIVATION_SHLIB_FACTORY()

    #define             BONOBO_ACTIVATION_SHLIB_FACTORY(oafiid, descr, fn, data)

Macro that includes all boiler-plate code necessary to create an shlib type factory.

`oafiid` : | The factory's OAFIID
`descr` : | Description of the factory
`fn` : | Function (BonoboFactoryCallback) responsible for intantiating components
`data` : | Additional data to be passed to the callback