Bonobo API Reference Manual | |||
---|---|---|---|
<<< Previous Page | Home | Up | Next Page >>> |
struct BonoboMonikerSimple; |
|
BonoboMonikerSimple makes writing monikers really extremely
easy. To implement a moniker you only have to write 1 function.
To register create the moniker object you have to use only 1
call. It can't get much simpler. If you want to use monikers
instead of implementing them, you probably want to see
Few people need to implement monikers, but if they do, this is how they should do it:
Example 1. A cut down file: moniker implementation
Bonobo_Unknown bonobo_moniker_file_resolve (BonoboMoniker *moniker, const Bonobo_ResolveOptions *options, const CORBA_char *requested_interface, CORBA_Environment *ev) { const char *fname = bonobo_moniker_get_name (moniker); Bonobo_Unknown retval; g_warning ("Fname 's'", fname); if (!strcmp (requested_interface, "IDL:Bonobo/Stream:1.0")) { BonoboStream *stream; stream = bonobo_stream_open ("fs", fname, Bonobo_Storage_READ, 0664); if (!stream) { g_warning ("Failed to open stream 's'", fname); CORBA_exception_set (ev, CORBA_USER_EXCEPTION, ex_Bonobo_Moniker_InterfaceNotFound, NULL); return CORBA_OBJECT_NIL; } return CORBA_Object_duplicate (BONOBO_OBJREF (stream), ev); } return CORBA_OBJECT_NIL; } |
Example 2. Creating a new simple moniker
static BonoboObject * bonobo_std_moniker_factory (BonoboGenericFactory *this, const char *object_id, void *data) { g_return_val_if_fail (object_id != NULL, NULL); if (!strcmp (object_id, "OAFIID:Bonobo_Moniker_File")) return BONOBO_OBJECT (bonobo_moniker_simple_new ( "file:", bonobo_moniker_file_resolve)); else return NULL; } |
|
moniker : | |
options : | |
requested_interface : | |
ev : | |
Returns : |
|
BonoboMoniker* bonobo_moniker_simple_new (const char *name, BonoboMonikerSimpleResolveFn resolve_fn); |
Create a new instance of a simplified moniker.
name : | the display name for the moniker |
resolve_fn : | a resolve function for the moniker |
Returns : | the moniker object |
BonoboMoniker* bonobo_moniker_simple_construct ( |
Constructs a simple moniker
moniker : | the moniker to construct |
name : | the name of the moniker eg. 'file:' |
resolve_fn : | the function used to resolve the moniker |
Returns : | the constructed moniker or NULL on failure. |