File: //usr/local/ssl/share/gtk-doc/html/libbonobo/libbonobo-bonobo-moniker-util.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>bonobo-moniker-util</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="index.html" title="Libbonobo Reference Manual">
<link rel="up" href="monikers.html" title="Monikers">
<link rel="prev" href="libbonobo-bonobo-moniker-simple.html" title="BonoboMonikerSimple">
<link rel="next" href="libbonobo-bonobo-moniker-extender.html" title="BonoboMonikerExtender">
<meta name="generator" content="GTK-Doc V1.7 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="general.html" title="General">
<link rel="chapter" href="factories.html" title="Objects, Factories, Reference Counting">
<link rel="chapter" href="property-bags.html" title="Property Bags, Events, Listeners">
<link rel="chapter" href="monikers.html" title="Monikers">
<link rel="chapter" href="streams.html" title="Storages and Streams">
<link rel="chapter" href="persist.html" title="Persistency">
<link rel="chapter" href="misc.html" title="Miscellaneous">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="libbonobo-bonobo-moniker-simple.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="monikers.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Libbonobo Reference Manual</th>
<td><a accesskey="n" href="libbonobo-bonobo-moniker-extender.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#id2762500" class="shortcut">Top</a>
 | 
<a href="#id2763282" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="libbonobo-bonobo-moniker-util"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2>
<a name="id2762500"></a><span class="refentrytitle">bonobo-moniker-util</span>
</h2>
<p>bonobo-moniker-util — Object activation and construction through monikers.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">
Bonobo_Unknown <a href="libbonobo-bonobo-moniker-util.html#bonobo-get-object">bonobo_get_object</a> (const CORBA_char *name,
const char *interface_name,
CORBA_Environment *opt_ev);
Bonobo_Moniker <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-client-new-from-name">bonobo_moniker_client_new_from_name</a>
(const CORBA_char *name,
CORBA_Environment *opt_ev);
CORBA_char* <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-client-get-name">bonobo_moniker_client_get_name</a> (Bonobo_Moniker moniker,
CORBA_Environment *opt_ev);
Bonobo_Unknown <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-client-resolve-default">bonobo_moniker_client_resolve_default</a>
(Bonobo_Moniker moniker,
const char *interface_name,
CORBA_Environment *opt_ev);
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-client-equal">bonobo_moniker_client_equal</a> (Bonobo_Moniker moniker,
const CORBA_char *name,
CORBA_Environment *opt_ev);
void (<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">*BonoboMonikerAsyncFn</a>) (Bonobo_Unknown object,
CORBA_Environment *ev,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="libbonobo-bonobo-moniker-util.html#bonobo-get-object-async">bonobo_get_object_async</a> (const CORBA_char *name,
const char *interface_name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-client-new-from-name-async">bonobo_moniker_client_new_from_name_async</a>
(const CORBA_char *name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-resolve-async">bonobo_moniker_resolve_async</a> (Bonobo_Moniker moniker,
Bonobo_ResolveOptions *options,
const char *interface_name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
void <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-resolve-async-default">bonobo_moniker_resolve_async_default</a>
(Bonobo_Moniker moniker,
const char *interface_name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);
CORBA_char* <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-util-get-parent-name">bonobo_moniker_util_get_parent_name</a>
(Bonobo_Moniker moniker,
CORBA_Environment *opt_ev);
Bonobo_Unknown <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-util-qi-return">bonobo_moniker_util_qi_return</a>
(Bonobo_Unknown object,
const CORBA_char *requested_interface,
CORBA_Environment *ev);
const char* <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-util-parse-name">bonobo_moniker_util_parse_name</a> (const char *name,
int *plen);
int <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-util-seek-std-separator">bonobo_moniker_util_seek_std_separator</a>
(const CORBA_char *str,
int min_idx);
char* <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-util-escape">bonobo_moniker_util_escape</a> (const char *string,
int offset);
char* <a href="libbonobo-bonobo-moniker-util.html#bonobo-moniker-util-unescape">bonobo_moniker_util_unescape</a> (const char *string,
int num_chars);
void <a href="libbonobo-bonobo-moniker-util.html#bonobo-url-register">bonobo_url_register</a> (char *oafiid,
char *url,
char *mime_type,
Bonobo_Unknown object,
CORBA_Environment *ev);
void <a href="libbonobo-bonobo-moniker-util.html#bonobo-url-unregister">bonobo_url_unregister</a> (char *oafiid,
char *url,
CORBA_Environment *ev);
Bonobo_Unknown <a href="libbonobo-bonobo-moniker-util.html#bonobo-url-lookup">bonobo_url_lookup</a> (char *oafiid,
char *url,
CORBA_Environment *ev);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2763282"></a><h2>Description</h2>
<p>
The moniker utility functions provide two sets of functions:
</p>
<div class="itemizedlist"><ul type="disc">
<li><p>
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 <span class="type">BonoboAsync</span>
code.
</p></li>
<li><p>
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.
</p></li>
</ul></div>
<p>
</p>
<p>
The most useful function to get a feel for what monikers can do
is the <code class="function">bonobo_get_object</code> method. This is
used to create a moniker and resolve it against a given interface
like this:
</p>
<div class="example">
<a name="id2763342"></a><p class="title"><b>Example 3. GetObject example</b></p>
<pre class="programlisting">
GtkWidget *
moniker_resolve_demo (void)
{
Bonobo_Control control;
CORBA_Environment ev;
CORBA_exception_init (&ev);
control = bonobo_get_object ("file:/demo/a.jpeg",
"Bonobo/Control", NULL);
if (control == CORBA_OBJECT_NIL)
g_error ("Failed to get object file:/demo/a.jpeg");
return bonobo_widget_new_control (control);
}
</pre>
</div>
<p>
This also makes a control out of the widget.
</p>
<p>
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.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2763380"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id2763390"></a><h3>
<a name="bonobo-get-object"></a>bonobo_get_object ()</h3>
<a class="indexterm" name="id2763404"></a><pre class="programlisting">Bonobo_Unknown bonobo_get_object (const CORBA_char *name,
const char *interface_name,
CORBA_Environment *opt_ev);</pre>
<p>
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.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em> :</span></td>
<td> the name of a moniker
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>interface_name</code></em> :</span></td>
<td> the name of the interface we want returned as the result
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>opt_ev</code></em> :</span></td>
<td> an optional corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the requested interface or CORBA_OBJECT_NIL
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2763512"></a><h3>
<a name="bonobo-moniker-client-new-from-name"></a>bonobo_moniker_client_new_from_name ()</h3>
<a class="indexterm" name="id2763527"></a><pre class="programlisting">Bonobo_Moniker bonobo_moniker_client_new_from_name
(const CORBA_char *name,
CORBA_Environment *opt_ev);</pre>
<p>
This routine tries to parse a Moniker in string form
</p>
<p>
eg. file:/tmp/a.tar.gz<span class="type">gzip:</span><span class="type">tar:</span>
</p>
<p>
into a CORBA_Object representation of this that can
later be resolved against an interface.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em> :</span></td>
<td> the name of a moniker
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>opt_ev</code></em> :</span></td>
<td> an optional corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> a new Moniker handle
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2763637"></a><h3>
<a name="bonobo-moniker-client-get-name"></a>bonobo_moniker_client_get_name ()</h3>
<a class="indexterm" name="id2763650"></a><pre class="programlisting">CORBA_char* bonobo_moniker_client_get_name (Bonobo_Moniker moniker,
CORBA_Environment *opt_ev);</pre>
<p>
</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>moniker</code></em> :</span></td>
<td> a moniker handle
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>opt_ev</code></em> :</span></td>
<td> a corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the name of the moniker.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2763733"></a><h3>
<a name="bonobo-moniker-client-resolve-default"></a>bonobo_moniker_client_resolve_default ()</h3>
<a class="indexterm" name="id2763747"></a><pre class="programlisting">Bonobo_Unknown bonobo_moniker_client_resolve_default
(Bonobo_Moniker moniker,
const char *interface_name,
CORBA_Environment *opt_ev);</pre>
<p>
This resolves the moniker object against the given interface,
with a default set of resolve options.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>moniker</code></em> :</span></td>
<td> a moniker
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>interface_name</code></em> :</span></td>
<td> the name of the interface we want returned as the result
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>opt_ev</code></em> :</span></td>
<td> an optional corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the interfaces resolved to or CORBA_OBJECT_NIL
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2763856"></a><h3>
<a name="bonobo-moniker-client-equal"></a>bonobo_moniker_client_equal ()</h3>
<a class="indexterm" name="id2763870"></a><pre class="programlisting"><a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"
>gboolean</a> bonobo_moniker_client_equal (Bonobo_Moniker moniker,
const CORBA_char *name,
CORBA_Environment *opt_ev);</pre>
<p>
Compare a full <em class="parameter"><code>moniker</code></em> with the given <em class="parameter"><code>name</code></em></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>moniker</code></em> :</span></td>
<td> The moniker
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em> :</span></td>
<td> a moniker name eg. file:/demo/a.jpeg
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>opt_ev</code></em> :</span></td>
<td> optional CORBA_Environment or NULL.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> TRUE if they are the same
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2763986"></a><h3>
<a name="BonoboMonikerAsyncFn"></a>BonoboMonikerAsyncFn ()</h3>
<a class="indexterm" name="id2764000"></a><pre class="programlisting">void (*BonoboMonikerAsyncFn) (Bonobo_Unknown object,
CORBA_Environment *ev,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
Callback function, invoked when <a href="libbonobo-bonobo-moniker-util.html#bonobo-get-object-async"><code class="function">bonobo_get_object_async()</code></a> completes its work.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>object</code></em> :</span></td>
<td>the newly-activated object, or <code class="literal">CORBA_OBJECT_NIL</code> if an exception occurred
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td>CORBA environment that may contain an exception if an activation error occurred
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td>user data
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2764114"></a><h3>
<a name="bonobo-get-object-async"></a>bonobo_get_object_async ()</h3>
<a class="indexterm" name="id2764128"></a><pre class="programlisting">void bonobo_get_object_async (const CORBA_char *name,
const char *interface_name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
An async version of bonobo_get_object</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>interface_name</code></em> :</span></td>
<td> the name of the interface we want returned as the result
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td> a corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>cb</code></em> :</span></td>
<td> the async callback that gets the response
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user context data to pass to that callback
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2764267"></a><h3>
<a name="bonobo-moniker-client-new-from-name-async"></a>bonobo_moniker_client_new_from_name_async ()</h3>
<a class="indexterm" name="id2764282"></a><pre class="programlisting">void bonobo_moniker_client_new_from_name_async
(const CORBA_char *name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
An asynchronous version of new_from_name</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em> :</span></td>
<td> the name
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td> a corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>cb</code></em> :</span></td>
<td> the async callback that gets the response
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user context data to pass to that callback
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2764399"></a><h3>
<a name="bonobo-moniker-resolve-async"></a>bonobo_moniker_resolve_async ()</h3>
<a class="indexterm" name="id2764413"></a><pre class="programlisting">void bonobo_moniker_resolve_async (Bonobo_Moniker moniker,
Bonobo_ResolveOptions *options,
const char *interface_name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
An async version of bonobo_moniker_client_resolve</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>moniker</code></em> :</span></td>
<td> the moniker to resolve
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>options</code></em> :</span></td>
<td> resolve options
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>interface_name</code></em> :</span></td>
<td> the name of the interface we want returned as the result
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td> a corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>cb</code></em> :</span></td>
<td> the async callback that gets the response
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user context data to pass to that callback
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2764576"></a><h3>
<a name="bonobo-moniker-resolve-async-default"></a>bonobo_moniker_resolve_async_default ()</h3>
<a class="indexterm" name="id2764590"></a><pre class="programlisting">void bonobo_moniker_resolve_async_default
(Bonobo_Moniker moniker,
const char *interface_name,
CORBA_Environment *ev,
<a href="libbonobo-bonobo-moniker-util.html#BonoboMonikerAsyncFn">BonoboMonikerAsyncFn</a> cb,
<a
href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"
>gpointer</a> user_data);</pre>
<p>
An async version of bonobo_moniker_client_resolve_default</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>moniker</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>interface_name</code></em> :</span></td>
<td> the name of the interface we want returned as the result
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td> a corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>cb</code></em> :</span></td>
<td> the async callback that gets the response
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>user_data</code></em> :</span></td>
<td> user context data to pass to that callback
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2764731"></a><h3>
<a name="bonobo-moniker-util-get-parent-name"></a>bonobo_moniker_util_get_parent_name ()</h3>
<a class="indexterm" name="id2764746"></a><pre class="programlisting">CORBA_char* bonobo_moniker_util_get_parent_name
(Bonobo_Moniker moniker,
CORBA_Environment *opt_ev);</pre>
<p>
This gets the name of the parent moniker ( recursively
all of the parents of this moniker ).</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>moniker</code></em> :</span></td>
<td> the moniker
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>opt_ev</code></em> :</span></td>
<td> an optional corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the name; use CORBA_free to release it.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2764831"></a><h3>
<a name="bonobo-moniker-util-qi-return"></a>bonobo_moniker_util_qi_return ()</h3>
<a class="indexterm" name="id2764845"></a><pre class="programlisting">Bonobo_Unknown bonobo_moniker_util_qi_return
(Bonobo_Unknown object,
const CORBA_char *requested_interface,
CORBA_Environment *ev);</pre>
<p>
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.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>object</code></em> :</span></td>
<td> the unknown to query
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>requested_interface</code></em> :</span></td>
<td> the desired interface
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td> a corba exception environment
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> an handle to the requested interface
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2764954"></a><h3>
<a name="bonobo-moniker-util-parse-name"></a>bonobo_moniker_util_parse_name ()</h3>
<a class="indexterm" name="id2764968"></a><pre class="programlisting">const char* bonobo_moniker_util_parse_name (const char *name,
int *plen);</pre>
<p>
This routine finds the rightmost moniker name. For example
it will return "cache:" if you pass in "file:/tmp.txt<span class="type">cache:</span>". It will
also store the length of the parent string in <em class="parameter"><code>plen</code></em> (13 for the above
example)</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em> :</span></td>
<td> a moniker name
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>plen</code></em> :</span></td>
<td> an optional pointer to store the parent length
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the name of the rightmost moniker
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2765070"></a><h3>
<a name="bonobo-moniker-util-seek-std-separator"></a>bonobo_moniker_util_seek_std_separator ()</h3>
<a class="indexterm" name="id2765083"></a><pre class="programlisting">int bonobo_moniker_util_seek_std_separator
(const CORBA_char *str,
int min_idx);</pre>
<p>
This looks for a moniker separator in a moniker's name string.
</p>
<p>
See also bonobo_moniker_util_escape</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>str</code></em> :</span></td>
<td> the string to scan
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>min_idx</code></em> :</span></td>
<td> the minimum offset at which a separator can be found.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the position of the separator, or a
pointer to the end of the string.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2765172"></a><h3>
<a name="bonobo-moniker-util-escape"></a>bonobo_moniker_util_escape ()</h3>
<a class="indexterm" name="id2765185"></a><pre class="programlisting">char* bonobo_moniker_util_escape (const char *string,
int offset);</pre>
<p>
Escapes possible separator characters inside a moniker
these include '!' and '#', the '\' escaping character is
used.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>string</code></em> :</span></td>
<td> an unescaped string
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>offset</code></em> :</span></td>
<td> an offset of characters to ignore
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> an escaped sub-string.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2765269"></a><h3>
<a name="bonobo-moniker-util-unescape"></a>bonobo_moniker_util_unescape ()</h3>
<a class="indexterm" name="id2765283"></a><pre class="programlisting">char* bonobo_moniker_util_unescape (const char *string,
int num_chars);</pre>
<p>
This routine strips <em class="parameter"><code>num_chars</code></em>: from the start of
<em class="parameter"><code>string</code></em>, discards the rest, and proceeds to un-escape
characters escaped with '\'.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>string</code></em> :</span></td>
<td> a string
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>num_chars</code></em> :</span></td>
<td> the number of chars to process.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td> the unescaped sub string.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2765378"></a><h3>
<a name="bonobo-url-register"></a>bonobo_url_register ()</h3>
<a class="indexterm" name="id2765391"></a><pre class="programlisting">void bonobo_url_register (char *oafiid,
char *url,
char *mime_type,
Bonobo_Unknown object,
CORBA_Environment *ev);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>oafiid</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>url</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>mime_type</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>object</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2765522"></a><h3>
<a name="bonobo-url-unregister"></a>bonobo_url_unregister ()</h3>
<a class="indexterm" name="id2765535"></a><pre class="programlisting">void bonobo_url_unregister (char *oafiid,
char *url,
CORBA_Environment *ev);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>oafiid</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>url</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2765623"></a><h3>
<a name="bonobo-url-lookup"></a>bonobo_url_lookup ()</h3>
<a class="indexterm" name="id2765636"></a><pre class="programlisting">Bonobo_Unknown bonobo_url_lookup (char *oafiid,
char *url,
CORBA_Environment *ev);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>oafiid</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>url</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>ev</code></em> :</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
</body>
</html>