<!-- ##### SECTION Title ##### -->
goad

<!-- ##### SECTION Short_Description ##### -->
GNOME Object Activation Directory

<!-- ##### SECTION Long_Description ##### -->
<para>
GOAD is the GNOME Object Activation Directory. It keeps track of the
CORBA object implementations available on the system, and allows
applications to activate these implementations or access currently
running ones.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### FUNCTION goad_server_activation_id ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION goad_server_register ##### -->
<para>

</para>

@name_server: 
@server: 
@name: 
@kind: 
@ev: 
@Returns: 


<!-- ##### FUNCTION goad_server_unregister ##### -->
<para>

</para>

@name_server: 
@name: 
@kind: 
@ev: 
@Returns: 


<!-- ##### ENUM GoadServerType ##### -->
<para>
<itemizedlist>
<listitem><para>GOAD_SERVER_SHLIB - implementation is in a shared library plugin</para></listitem>
<listitem><para>GOAD_SERVER_EXE - implementation is in a separate program</para></listitem>
<listitem><para>GOAD_SERVER_RELAY - implementation is accessable via a relay object (not yet implemented)</para></listitem>
<listitem><para>GOAD_SERVER_FACTORY - implementation is started by talking to a GNOME::GenericFactory object</para></listitem>
</itemizedlist>
</para>


<!-- ##### ENUM GoadActivationFlags ##### -->
<para>
<itemizedlist>
<listitem><para>GOAD_ACTIVATE_SHLIB - indicates activation from a shared library plugin is preferred</para></listitem>
<listitem><para>GOAD_ACTIVATE_REMOTE - indicates activation from an executable or factory is preferred</para></listitem>
<listitem><para>GOAD_ACTIVATE_EXISTING_ONLY - Don't create a new object, simply access the currently running implementation if available.</para></listitem>
<listitem><para>GOAD_ACTIVATE_NEW_ONLY - Don't look for a currently running implementation, just create a new one (mutually exclusive with GOAD_ACTIVATE_EXISTING_ONLY)</para></listitem>
<listitem><para>GOAD_ACTIVATE_ASYNC - just start the object implementation, but don't worry about getting a reference to it.</para></listitem>
</itemizedlist>
</para>


<!-- ##### STRUCT GoadServer ##### -->
<para>
<itemizedlist>
<listitem><para>'type' - The GoadServerType of the implementation being listed</para></listitem>
<listitem><para>'flags' - The bitwise OR of all the GoadActivationFlags that are enforced for this GoadServer</para></listitem>
<listitem><para>'repo_id' - An array of strings giving all the interfaces supported by this implementation</para></listitem>
<listitem><para>'server_id' - The GOAD ID of this implementation. A GOAD ID is a unique global identifier of a particular object implementation.</para></listitem>
<listitem><para>'description' - A human-readable description of this object, if applicable</para></listitem>
<listitem><para>'location_info' - Information on how to activate the object. The meaning varies depending on the 'type'</para></listitem>
</itemizedlist>
</para>


<!-- ##### STRUCT GoadServerList ##### -->
<para>
'list' is an array of GoadServer structures. 'by_goad_id' is a hash
table with the GOAD ID of each implementation as the key, and the
GoadServer structure for that implementation as the value.
</para>


<!-- ##### FUNCTION goad_server_list_get ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION goad_server_list_free ##### -->
<para>

</para>

@server_list: 


<!-- ##### FUNCTION goad_server_activate ##### -->
<para>

</para>

@sinfo: 
@flags: 
@params: 
@Returns: 


<!-- ##### FUNCTION goad_server_activate_with_repo_id ##### -->
<para>

</para>

@server_list: 
@repo_id: 
@flags: 
@params: 
@Returns: 


<!-- ##### FUNCTION goad_server_activate_with_id ##### -->
<para>

</para>

@server_list: 
@server_id: 
@flags: 
@params: 
@Returns: 


