<!-- ##### SECTION ./tmpl/mateconf-matecorba.sgml:Long_Description ##### -->
<para>
MateConf needs a connection to an ORB; it needs to be able to receive
CORBA requests and act on them; and it needs CORBA connection
authentication. There are two basic ways to do this; first, you 
can let MateConf set things up by calling mateconf_init_orb(); second, you
can set things up yourself (or let MATE set things up), then call
mateconf_set_orb() to tell the MateConf library about it.
</para>

<para>
The problem right now is that <application>mateconfd</application> only
speaks the authentication mechanism from mateconf_init_orb(), since the 
MATE authentication mechanism requires an X server connection. So 
right now if you use mate_CORBA_init() then you can't talk to
<application>mateconfd</application>. (If you use mateconf_init_orb() in an
otherwise non-CORBA MATE application then you can.) This will get
fixed by the time MATE 2.0 is ready.
</para>


<!-- ##### SECTION ./tmpl/mateconf-matecorba.sgml:See_Also ##### -->
<para>

</para>


<!-- ##### SECTION ./tmpl/mateconf-matecorba.sgml:Short_Description ##### -->

Interface for setting up CORBA


<!-- ##### SECTION ./tmpl/mateconf-matecorba.sgml:Title ##### -->

MateConf CORBA


<!-- ##### SECTION ./tmpl/mateconf-unused.sgml:See_Also ##### -->
<para>

</para>


<!-- ##### MACRO MATECONF_INTERNAL_VALUE_TYPE_VALID ##### -->
<para>

</para>

@x: 

<!-- ##### SIGNAL MateConfClient::error ##### -->
<para>
Emitted whenever an error occurs inside a #MateConfClient function. Depending on
the #MateConfClientErrorHandlingMode, the default handler for this signal may or
may not display an error dialog.
</para>

@mateconfclient: the object which received the signal.
@arg1: a #GError* (the error).

<!-- ##### SIGNAL MateConfClient::unreturned-error ##### -->
<para>
Emitted when you pass <symbol>NULL</symbol> for the #GError** argument to
any #MateConfClient function, and an error occurs. Depending on the
#MateConfClientErrorHandlingMode, the default handler for this signal may or may
not display an error dialog.
</para>

@mateconfclient: the object which received the signal.
@arg1: a #GError* (the unhandled error).

<!-- ##### SIGNAL MateConfClient::value-changed ##### -->
<para>
Emitted when a key below one of the directories added with
mateconf_client_add_dir() receives a new value or is unset. Because your signal
handler will have to use strcmp() to decide whether it cares about the
particular value that changed, it can be much more efficient to use
mateconf_client_notify_add().
</para>

@mateconfclient: the object which received the signal.
@arg1: a const #gchar* representing the changed key name
@arg2: a #MateConfValue* representing the new value, or <symbol>NULL</symbol> for unset.

<!-- ##### USER_FUNCTION MateConfClientParentWindowFunc ##### -->
<para>
If you're using the default #MateConfClient error handlers, they can call this
function to set the parent of any dialogs they create. See
mate_dialog_set_parent() in the MATE documentation for details. The function
should return a pointer to a #GtkWindow.
</para>

@client: a #MateConfClient.
@user_data: user data passed to mateconf_client_set_error_handling().
@Returns: the parent window for #MateConfClient's error dialogs.

<!-- ##### STRUCT GError ##### -->
<para>
This structure describes an error. The @str field gives a
human-readable description of the problem; the string is intended for
display to users. It will be internationalized and as informative as
possible. The @num field is intended for programs that want to
distinguish between different kinds of error. The @num and @str fields
are meant to be accessed directly, because it's convenient to write
err->code and err->message.
</para>

@domain: 
@code: 
@message: 

<!-- ##### FUNCTION corba_schema_from_mateconf_schema ##### -->
<para>

</para>

@sc: 
@Returns: 

<!-- ##### FUNCTION corba_value_from_mateconf_value ##### -->
<para>

</para>

@value: 
@Returns: 

<!-- ##### FUNCTION fill_corba_schema_from_mateconf_schema ##### -->
<para>

</para>

@sc: 
@dest: 

<!-- ##### FUNCTION fill_corba_value_from_mateconf_value ##### -->
<para>

</para>

@value: 
@dest: 

<!-- ##### FUNCTION g_clear_error ##### -->
<para>
Internal function.
</para>

@err: 

<!-- ##### FUNCTION g_error_copy ##### -->
<para>
Copies a #GError.
</para>

@error: 
@Returns: a new #GError.
@err: a #GError to copy.

<!-- ##### FUNCTION g_error_free ##### -->
<para>
Destroys a #GError. You must destroy any errors returned by MateConf
functions.
</para>

@error: 
@err: a #GError to destroy.

<!-- ##### FUNCTION mateconf_client_get_full ##### -->
<para>

</para>

@client: 
@key: 
@locale: 
@use_schema_default: 
@value_is_default: 
@err: 
@Returns: 

<!-- ##### FUNCTION mateconf_get_orb ##### -->
<para>
Returns the ORB MateConf is using.
</para>

@Returns: the ORB MateConf is using.

<!-- ##### FUNCTION mateconf_init_orb ##### -->
<para>
Initializes CORBA and a connection to the ORB, sets up authentication, 
and adds CORBA-related event handlers to your application's event
loop. Your application must be using the event loop from GLib; this is
the event loop all GTK+ applications use, but it also works in
non-GTK+ applications (such as <application>mateconfd</application>, if
you're looking for some sample code).
</para>

<para>
mateconf_init_orb() wants to see the command line arguments to check for
MateCORBA options. If it finds MateCORBA options it will remove them from @argc
and @argv. It returns an error if CORBA initialization failes.
</para>

@argc: address of argc.
@argv: argv.
@err: the return location for an allocated #GError, or <symbol>NULL</symbol> to ignore errors.
@Returns: the ORB object reference.

<!-- ##### FUNCTION mateconf_quote_percents ##### -->
<para>

</para>

@src: 
@Returns: 

<!-- ##### FUNCTION mateconf_read_server_ior ##### -->
<para>

</para>

@err: 
@Returns: 

<!-- ##### FUNCTION mateconf_server_info_dir ##### -->
<para>

</para>

@Returns: 

<!-- ##### FUNCTION mateconf_server_info_file ##### -->
<para>

</para>

@Returns: 

<!-- ##### FUNCTION mateconf_set_orb ##### -->
<para>
mateconf_set_orb() allows you to tell MateConf about an ORB obtained by
means other than mateconf_init_orb(). You should call mateconf_init_orb()
<emphasis>or</emphasis> this function, never both.
</para>

@orb: the ORB MateConf should use to communicate with <application>mateconfd</application>.

<!-- ##### FUNCTION mateconf_strerror ##### -->
<para>
Internal function.
</para>

@en: 
@Returns: 

<!-- ##### FUNCTION invalid_corba_value ##### -->
<para>

</para>

@Returns: 

