bonobo-moniker-util

bonobo-moniker-util

Name

bonobo-moniker-util -- Object activation and construction through monikers.

Synopsis


Bonobo_Unknown bonobo_get_object            (const CORBA_char *name,
                                             const char *interface_name,
                                             CORBA_Environment *opt_ev);
Bonobo_Moniker bonobo_moniker_client_new_from_name
                                            (const CORBA_char *name,
                                             CORBA_Environment *opt_ev);
CORBA_char* bonobo_moniker_client_get_name  (Bonobo_Moniker moniker,
                                             CORBA_Environment *opt_ev);
Bonobo_Unknown bonobo_moniker_client_resolve_default
                                            (Bonobo_Moniker moniker,
                                             const char *interface_name,
                                             CORBA_Environment *opt_ev);
gboolean    bonobo_moniker_client_equal     (Bonobo_Moniker moniker,
                                             const CORBA_char *name,
                                             CORBA_Environment *opt_ev);
void        (*BonoboMonikerAsyncFn)         (Bonobo_Unknown object,
                                             CORBA_Environment *ev,
                                             gpointer user_data);
void        bonobo_get_object_async         (const CORBA_char *name,
                                             const char *interface_name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);
void        bonobo_moniker_client_new_from_name_async
                                            (const CORBA_char *name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);
void        bonobo_moniker_resolve_async    (Bonobo_Moniker moniker,
                                             Bonobo_ResolveOptions *options,
                                             const char *interface_name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);
void        bonobo_moniker_resolve_async_default
                                            (Bonobo_Moniker moniker,
                                             const char *interface_name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);
CORBA_char* bonobo_moniker_util_get_parent_name
                                            (Bonobo_Moniker moniker,
                                             CORBA_Environment *opt_ev);
Bonobo_Unknown bonobo_moniker_util_qi_return
                                            (Bonobo_Unknown object,
                                             const CORBA_char *requested_interface,
                                             CORBA_Environment *ev);
const char* bonobo_moniker_util_parse_name  (const char *name,
                                             int *plen);
int         bonobo_moniker_util_seek_std_separator
                                            (const CORBA_char *str,
                                             int min_idx);
char*       bonobo_moniker_util_escape      (const char *string,
                                             int offset);
char*       bonobo_moniker_util_unescape    (const char *string,
                                             int num_chars);
void        bonobo_url_register             (char *oafiid,
                                             char *url,
                                             char *mime_type,
                                             Bonobo_Unknown object,
                                             CORBA_Environment *ev);
void        bonobo_url_unregister           (char *oafiid,
                                             char *url,
                                             CORBA_Environment *ev);
Bonobo_Unknown bonobo_url_lookup            (char *oafiid,
                                             char *url,
                                             CORBA_Environment *ev);

Description

The moniker utility functions provide two sets of functions:

  • Helper functions for constructing and resolving monikers, and a simple get_object method that constructs and resolves against an interface in a single pass. Also, asynchronous versions of these methods are provided using the BonoboAsync code.

  • Helper functions for the implementation of new custom monikers are also provided here, along with a lot of the grunt code neccessary for moniker implementation, particularly constructing the chained list of sub-monikers that comprises a complex moniker.

The most useful function to get a feel for what monikers can do is the bonobo_get_object method. This is used to create a moniker and resolve it against a given interface like this:

This also makes a control out of the widget.

It is worth noting that when resolving monikers a contracted version of the interface name may be used, ommitting the 'IDL:' prefix and / or the ':0' suffix.

Details

bonobo_get_object ()

Bonobo_Unknown bonobo_get_object            (const CORBA_char *name,
                                             const char *interface_name,
                                             CORBA_Environment *opt_ev);

This encapsulates both the parse stage and resolve process of using a moniker, providing a simple VisualBasic like mechanism for using the object name space.


bonobo_moniker_client_new_from_name ()

Bonobo_Moniker bonobo_moniker_client_new_from_name
                                            (const CORBA_char *name,
                                             CORBA_Environment *opt_ev);

This routine tries to parse a Moniker in string form

eg. file:/tmp/a.tar.gzgzip:tar:

into a CORBA_Object representation of this that can later be resolved against an interface.


bonobo_moniker_client_get_name ()

CORBA_char* bonobo_moniker_client_get_name  (Bonobo_Moniker moniker,
                                             CORBA_Environment *opt_ev);


bonobo_moniker_client_resolve_default ()

Bonobo_Unknown bonobo_moniker_client_resolve_default
                                            (Bonobo_Moniker moniker,
                                             const char *interface_name,
                                             CORBA_Environment *opt_ev);

This resolves the moniker object against the given interface, with a default set of resolve options.


bonobo_moniker_client_equal ()

gboolean    bonobo_moniker_client_equal     (Bonobo_Moniker moniker,
                                             const CORBA_char *name,
                                             CORBA_Environment *opt_ev);

Compare a full moniker with the given name


BonoboMonikerAsyncFn ()

void        (*BonoboMonikerAsyncFn)         (Bonobo_Unknown object,
                                             CORBA_Environment *ev,
                                             gpointer user_data);


bonobo_get_object_async ()

void        bonobo_get_object_async         (const CORBA_char *name,
                                             const char *interface_name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);

An async version of bonobo_get_object


bonobo_moniker_client_new_from_name_async ()

void        bonobo_moniker_client_new_from_name_async
                                            (const CORBA_char *name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);

An asynchronous version of new_from_name


bonobo_moniker_resolve_async ()

void        bonobo_moniker_resolve_async    (Bonobo_Moniker moniker,
                                             Bonobo_ResolveOptions *options,
                                             const char *interface_name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);

An async version of bonobo_moniker_client_resolve


bonobo_moniker_resolve_async_default ()

void        bonobo_moniker_resolve_async_default
                                            (Bonobo_Moniker moniker,
                                             const char *interface_name,
                                             CORBA_Environment *ev,
                                             BonoboMonikerAsyncFn cb,
                                             gpointer user_data);

An async version of bonobo_moniker_client_resolve_default


bonobo_moniker_util_get_parent_name ()

CORBA_char* bonobo_moniker_util_get_parent_name
                                            (Bonobo_Moniker moniker,
                                             CORBA_Environment *opt_ev);

This gets the name of the parent moniker ( recursively all of the parents of this moniker ).


bonobo_moniker_util_qi_return ()

Bonobo_Unknown bonobo_moniker_util_qi_return
                                            (Bonobo_Unknown object,
                                             const CORBA_char *requested_interface,
                                             CORBA_Environment *ev);

A helper function to share code from the end of a resolve implementation; this ensures that the returned object is of the correct interface by doing a queryInterface on the object.


bonobo_moniker_util_parse_name ()

const char* bonobo_moniker_util_parse_name  (const char *name,
                                             int *plen);

This routine finds the rightmost moniker name. For example it will return "cache:" if you pass in "file:/tmp.txtcache:". It will also store the length of the parent string in plen (13 for the above example)


bonobo_moniker_util_seek_std_separator ()

int         bonobo_moniker_util_seek_std_separator
                                            (const CORBA_char *str,
                                             int min_idx);

This looks for a moniker separator in a moniker's name string.

See also bonobo_moniker_util_escape


bonobo_moniker_util_escape ()

char*       bonobo_moniker_util_escape      (const char *string,
                                             int offset);

Escapes possible separator characters inside a moniker these include '!' and '#', the '\' escaping character is used.


bonobo_moniker_util_unescape ()

char*       bonobo_moniker_util_unescape    (const char *string,
                                             int num_chars);

This routine strips num_chars: from the start of string, discards the rest, and proceeds to un-escape characters escaped with '\'.


bonobo_url_register ()

void        bonobo_url_register             (char *oafiid,
                                             char *url,
                                             char *mime_type,
                                             Bonobo_Unknown object,
                                             CORBA_Environment *ev);


bonobo_url_unregister ()

void        bonobo_url_unregister           (char *oafiid,
                                             char *url,
                                             CORBA_Environment *ev);


bonobo_url_lookup ()

Bonobo_Unknown bonobo_url_lookup            (char *oafiid,
                                             char *url,
                                             CORBA_Environment *ev);