Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LassoDiscovery: Lasso Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="Lasso Reference Manual">
<link rel="up" href="idwsf.html" title="Identity Web Services Framework 1.0">
<link rel="prev" href="idwsf.html" title="Identity Web Services Framework 1.0">
<link rel="next" href="lasso-LassoDataService.html" title="LassoDataService">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</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="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#lasso-LassoDiscovery.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="idwsf.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="idwsf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="lasso-LassoDataService.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="lasso-LassoDiscovery"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="lasso-LassoDiscovery.top_of_page"></a>LassoDiscovery</span></h2>
<p>LassoDiscovery — ID-WSF Discovery Service Profile</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="lasso-LassoDiscovery.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="returnvalue">LassoDiscovery</span></a> *
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-new" title="lasso_discovery_new ()">lasso_discovery_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="returnvalue">LassoDiscovery</span></a> *
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-new-full" title="lasso_discovery_new_full ()">lasso_discovery_new_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-init-modify" title="lasso_discovery_init_modify ()">lasso_discovery_init_modify</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-add-insert-entry" title="lasso_discovery_add_insert_entry ()">lasso_discovery_add_insert_entry</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-add-remove-entry" title="lasso_discovery_add_remove_entry ()">lasso_discovery_add_remove_entry</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-init-query" title="lasso_discovery_init_query ()">lasso_discovery_init_query</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-add-requested-service-type" title="lasso_discovery_add_requested_service_type ()">lasso_discovery_add_requested_service_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-process-request-msg" title="lasso_discovery_process_request_msg ()">lasso_discovery_process_request_msg</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-build-response-msg" title="lasso_discovery_build_response_msg ()">lasso_discovery_build_response_msg</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-process-modify-response-msg" title="lasso_discovery_process_modify_response_msg ()">lasso_discovery_process_modify_response_msg</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">lasso_error_t</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-process-query-response-msg" title="lasso_discovery_process_query_response_msg ()">lasso_discovery_process_query_response_msg</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="lasso-LassoWsfProfile.html#LassoWsfProfile" title="struct LassoWsfProfile"><span class="returnvalue">LassoWsfProfile</span></a> *
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-get-service" title="lasso_discovery_get_service ()">lasso_discovery_get_service</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GList</span> *
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-get-services" title="lasso_discovery_get_services ()">lasso_discovery_get_services</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="lasso-LassoWsfProfile.html#LassoWsfProfile" title="struct LassoWsfProfile"><span class="returnvalue">LassoWsfProfile</span></a> *
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="lasso-LassoDiscovery.html#LassoWsfProfileConstructor" title="LassoWsfProfileConstructor ()">*LassoWsfProfileConstructor</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-register-constructor-for-service-type" title="lasso_discovery_register_constructor_for_service_type ()">lasso_discovery_register_constructor_for_service_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-unregister-constructor-for-service-type" title="lasso_discovery_unregister_constructor_for_service_type ()">lasso_discovery_unregister_constructor_for_service_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="lasso-LassoDiscovery.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody><tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery">LassoDiscovery</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="lasso-LassoDiscovery.description"></a><h2>Description</h2>
<p>The Discovery service usually runs on the principal identity provider and
knowns about resources and services related to the principal.  Attribute
providers can register themselves as offering resources for an user while
other services can ask where to find a given resource.</p>
<p>The following example is a service provider asking for a "PP" service (an
attribute provider for the "Personal Profile"):</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre></td>
        <td class="listing_code"><pre class="programlisting">LassoServer <span class="gtkdoc opt">*</span>server<span class="gtkdoc opt">;</span>  <span class="gtkdoc slc">// initialized before</span>
<span class="gtkdoc kwb">char</span><span class="gtkdoc opt">*</span> session_dump<span class="gtkdoc opt">;</span>   <span class="gtkdoc slc">// initialized before</span>

LassoDiscovery <span class="gtkdoc opt">*</span>discovery<span class="gtkdoc opt">;</span>    <span class="gtkdoc slc">// discovery service</span>
<span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>soap_answer<span class="gtkdoc opt">;</span>            <span class="gtkdoc slc">// SOAP answer from disco service</span>
LassoProfileService <span class="gtkdoc opt">*</span>service<span class="gtkdoc opt">;</span> <span class="gtkdoc slc">// instance to perform on requested service</span>

discovery <span class="gtkdoc opt">=</span> <span class="function"><a href="lasso-LassoDiscovery.html#lasso-discovery-new">lasso_discovery_new</a></span><span class="gtkdoc opt">(</span>server<span class="gtkdoc opt">);</span>
<span class="function"><a href="lasso-LassoWsfProfile.html#lasso-wsf-profile-set-session-from-dump">lasso_wsf_profile_set_session_from_dump</a></span><span class="gtkdoc opt">(</span><span class="function">LASSO_WSF_PROFILE</span><span class="gtkdoc opt">(</span>discovery<span class="gtkdoc opt">),</span> session_dump<span class="gtkdoc opt">);</span>
<span class="function"><a href="lasso-LassoDiscovery.html#lasso-discovery-init-query">lasso_discovery_init_query</a></span><span class="gtkdoc opt">(</span>discovery<span class="gtkdoc opt">);</span>
<span class="function">lasso_discovery_add_requested_service</span><span class="gtkdoc opt">(</span>discovery<span class="gtkdoc opt">,</span> LASSO_PP10_HREF<span class="gtkdoc opt">);</span>
<span class="function">lasso_discovery_build_request_msg</span><span class="gtkdoc opt">(</span>discovery<span class="gtkdoc opt">);</span>

<span class="gtkdoc slc">// service must perform SOAP call to LASSO_WSF_PROFILE(discovery)-&gt;msg_url</span>
<span class="gtkdoc slc">// the SOAP message is LASSO_WSF_PROFILE(discovery)-&gt;msg_body.  The answer</span>
<span class="gtkdoc slc">// is stored in char* soap_answer;</span>

<span class="function"><a href="lasso-LassoDiscovery.html#lasso-discovery-process-query-response-msg">lasso_discovery_process_query_response_msg</a></span><span class="gtkdoc opt">(</span>discovery<span class="gtkdoc opt">,</span> soap_answer<span class="gtkdoc opt">);</span>

<span class="gtkdoc slc">// get an object to access the first service returned, or NULL if an error happened</span>
service <span class="gtkdoc opt">=</span> <span class="function"><a href="lasso-LassoDiscovery.html#lasso-discovery-get-service">lasso_discovery_get_service</a></span><span class="gtkdoc opt">(</span>discovery<span class="gtkdoc opt">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

</div>
<div class="refsect1">
<a name="lasso-LassoDiscovery.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="lasso-discovery-new"></a><h3>lasso_discovery_new ()</h3>
<pre class="programlisting"><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="returnvalue">LassoDiscovery</span></a> *
lasso_discovery_new (<em class="parameter"><code><a class="link" href="lasso-LassoServer.html#LassoServer" title="struct LassoServer"><span class="type">LassoServer</span></a> *server</code></em>);</pre>
<p>Creates a new <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a>.</p>
<div class="refsect3">
<a name="lasso-discovery-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>server</p></td>
<td class="parameter_description"><p>the <a class="link" href="lasso-LassoServer.html#LassoServer" title="struct LassoServer"><span class="type">LassoServer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-new.returns"></a><h4>Returns</h4>
<p> a newly created <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> object; or NULL if an error occured.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-new-full"></a><h3>lasso_discovery_new_full ()</h3>
<pre class="programlisting"><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="returnvalue">LassoDiscovery</span></a> *
lasso_discovery_new_full (<em class="parameter"><code><a class="link" href="lasso-LassoServer.html#LassoServer" title="struct LassoServer"><span class="type">LassoServer</span></a> *server</code></em>,
                          <em class="parameter"><code><a class="link" href="lasso-LassoDiscoResourceOffering.html#LassoDiscoResourceOffering" title="struct LassoDiscoResourceOffering"><span class="type">LassoDiscoResourceOffering</span></a> *offering</code></em>);</pre>
<p>Creates a new <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a>.</p>
<div class="refsect3">
<a name="lasso-discovery-new-full.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>server</p></td>
<td class="parameter_description"><p>the <a class="link" href="lasso-LassoServer.html#LassoServer" title="struct LassoServer"><span class="type">LassoServer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>offering</p></td>
<td class="parameter_description"><p>the <a class="link" href="lasso-LassoDiscoResourceOffering.html#LassoDiscoResourceOffering" title="struct LassoDiscoResourceOffering"><span class="type">LassoDiscoResourceOffering</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-new-full.returns"></a><h4>Returns</h4>
<p> a newly created <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> object; or NULL if an error occured.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-init-modify"></a><h3>lasso_discovery_init_modify ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_init_modify (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                             <em class="parameter"><code>const <span class="type">char</span> *security_mech_id</code></em>);</pre>
<p>Initializes a disco Modify/InsertEntry</p>
<div class="refsect3">
<a name="lasso-discovery-init-modify.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>security_mech_id</p></td>
<td class="parameter_description"><p>the security mechanism identifier. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-init-modify.returns"></a><h4>Returns</h4>
<p> 0 on success; an error code otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-add-insert-entry"></a><h3>lasso_discovery_add_insert_entry ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_add_insert_entry (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                                  <em class="parameter"><code><a class="link" href="lasso-LassoDiscoServiceInstance.html#LassoDiscoServiceInstance" title="struct LassoDiscoServiceInstance"><span class="type">LassoDiscoServiceInstance</span></a> *serviceInstance</code></em>,
                                  <em class="parameter"><code><a class="link" href="lasso-LassoDiscoResourceID.html#LassoDiscoResourceID" title="struct LassoDiscoResourceID"><span class="type">LassoDiscoResourceID</span></a> *resourceId</code></em>);</pre>
<p>Add an <a class="link" href="lasso-LassoDiscoInsertEntry.html#LassoDiscoInsertEntry" title="struct LassoDiscoInsertEntry"><span class="type">LassoDiscoInsertEntry</span></a> containing a new <a class="link" href="lasso-LassoDiscoResourceOffering.html#LassoDiscoResourceOffering" title="struct LassoDiscoResourceOffering"><span class="type">LassoDiscoResourceOffering</span></a>, and initialize the
<a class="link" href="lasso-LassoDiscoResourceOffering.html#LassoDiscoResourceOffering" title="struct LassoDiscoResourceOffering"><span class="type">LassoDiscoResourceOffering</span></a> using the <a class="link" href="lasso-LassoDiscoServiceInstance.html#LassoDiscoServiceInstance" title="struct LassoDiscoServiceInstance"><span class="type">LassoDiscoServiceInstance</span></a> and <span class="type">LassoDiscoResourceId</span>
object.</p>
<div class="refsect3">
<a name="lasso-discovery-add-insert-entry.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> object</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>serviceInstance</p></td>
<td class="parameter_description"><p>an optional <a class="link" href="lasso-LassoDiscoServiceInstance.html#LassoDiscoServiceInstance" title="struct LassoDiscoServiceInstance"><span class="type">LassoDiscoServiceInstance</span></a> object</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>resourceID</p></td>
<td class="parameter_description"><p>the new <a class="link" href="lasso-LassoDiscoResourceID.html#LassoDiscoResourceID" title="struct LassoDiscoResourceID"><span class="type">LassoDiscoResourceID</span></a> used to create the <span class="type">LassoDiscoResrouceOffering</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-add-insert-entry.returns"></a><h4>Returns</h4>
<p> the newly created <a class="link" href="lasso-LassoDiscoInsertEntry.html#LassoDiscoInsertEntry" title="struct LassoDiscoInsertEntry"><span class="type">LassoDiscoInsertEntry</span></a> or NULL if some preconditions failed.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-add-remove-entry"></a><h3>lasso_discovery_add_remove_entry ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_add_remove_entry (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                                  <em class="parameter"><code>const <span class="type">gchar</span> *entryID</code></em>);</pre>
<p>Add a RemoveEntry to the current Modify message for a Discovery service,
to remove the resource offering identified by entryID (returned in the
response to a Modify/InsertEntry message).</p>
<div class="refsect3">
<a name="lasso-discovery-add-remove-entry.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> object</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>entryID</p></td>
<td class="parameter_description"><p>the idenitfier of a ResourceOffering to remove.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-add-remove-entry.returns"></a><h4>Returns</h4>
<p> 0 if successful, an error code otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-init-query"></a><h3>lasso_discovery_init_query ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_init_query (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                            <em class="parameter"><code>const <span class="type">gchar</span> *security_mech_id</code></em>);</pre>
<p>Initializes a disco:Query message.</p>
<div class="refsect3">
<a name="lasso-discovery-init-query.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>security_mech_id</p></td>
<td class="parameter_description"><p>identifier of a wished security mechanism, or NULL if any is ok. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-init-query.returns"></a><h4>Returns</h4>
<p> 0 on success; or a negative value otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-add-requested-service-type"></a><h3>lasso_discovery_add_requested_service_type ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_add_requested_service_type
                               (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *service_type</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *option</code></em>);</pre>
<p>Adds a request for service of <em class="parameter"><code>service_type</code></em>
 to the disco:Query being built.</p>
<div class="refsect3">
<a name="lasso-discovery-add-requested-service-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>service_type</p></td>
<td class="parameter_description"><p>requested service type</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>option</p></td>
<td class="parameter_description"><p>option to the requested service</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-add-requested-service-type.returns"></a><h4>Returns</h4>
<p> 0 if successful</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-process-request-msg"></a><h3>lasso_discovery_process_request_msg ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_process_request_msg (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                                     <em class="parameter"><code>const <span class="type">gchar</span> *message</code></em>,
                                     <em class="parameter"><code>const <span class="type">gchar</span> *security_mech_id</code></em>);</pre>
<p>Process a received SOAP message for the discovery service.</p>
<div class="refsect3">
<a name="lasso-discovery-process-request-msg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> object</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>message</p></td>
<td class="parameter_description"><p>a serialized SOAP message</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>security_mech_id</p></td>
<td class="parameter_description"><p>the security mech id to use for validating authorizations. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-process-request-msg.returns"></a><h4>Returns</h4>
<p> 0 if successfull, an error code otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-build-response-msg"></a><h3>lasso_discovery_build_response_msg ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_build_response_msg (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>);</pre>
<p>Execute needed action for the received request, and produce a response message.</p>
<p>If any critical error occur, it tries to produce a SOAP fault.</p>
<div class="refsect3">
<a name="lasso-discovery-build-response-msg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> object</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-build-response-msg.returns"></a><h4>Returns</h4>
<p> 0 on success; or an error code otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-process-modify-response-msg"></a><h3>lasso_discovery_process_modify_response_msg ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_process_modify_response_msg
                               (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *message</code></em>);</pre>
<p>Processes a disco:ModifyResponse SOAP message.</p>
<div class="refsect3">
<a name="lasso-discovery-process-modify-response-msg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>message</p></td>
<td class="parameter_description"><p>the disco:ModifyResponse SOAP message</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-process-modify-response-msg.returns"></a><h4>Returns</h4>
<p> 0 on success; or a negative value otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-process-query-response-msg"></a><h3>lasso_discovery_process_query_response_msg ()</h3>
<pre class="programlisting"><span class="returnvalue">lasso_error_t</span>
lasso_discovery_process_query_response_msg
                               (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *message</code></em>);</pre>
<p>Processes a disco:QueryResponse message.
Extract credentials from the response and put them in the session,
for later use by a request from a <a class="link" href="lasso-LassoWsfProfile.html#LassoWsfProfile" title="struct LassoWsfProfile"><span class="type">LassoWsfProfile</span></a>.</p>
<div class="refsect3">
<a name="lasso-discovery-process-query-response-msg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>message</p></td>
<td class="parameter_description"><p>the disco:QueryResponse message</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-process-query-response-msg.returns"></a><h4>Returns</h4>
<p> 0 on success; or a negative value otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-get-service"></a><h3>lasso_discovery_get_service ()</h3>
<pre class="programlisting"><a class="link" href="lasso-LassoWsfProfile.html#LassoWsfProfile" title="struct LassoWsfProfile"><span class="returnvalue">LassoWsfProfile</span></a> *
lasso_discovery_get_service (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>,
                             <em class="parameter"><code>const <span class="type">char</span> *service_type</code></em>);</pre>
<p>After a disco:query message, creates a <a class="link" href="lasso-LassoDataService.html#LassoDataService" title="struct LassoDataService"><span class="type">LassoDataService</span></a> instance for the
requested <em class="parameter"><code>service_type</code></em>
 with the first resource offering found or the first resource offering
matching the service type.</p>
<div class="refsect3">
<a name="lasso-discovery-get-service.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>service_type</p></td>
<td class="parameter_description"><p>the requested service type</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-get-service.returns"></a><h4>Returns</h4>
<p>a newly created <a class="link" href="lasso-LassoDataService.html#LassoDataService" title="struct LassoDataService"><span class="type">LassoDataService</span></a> object; or NULL if an
error occured. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-get-services"></a><h3>lasso_discovery_get_services ()</h3>
<pre class="programlisting"><span class="returnvalue">GList</span> *
lasso_discovery_get_services (<em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a> *discovery</code></em>);</pre>
<p>After a disco:query message, creates a GList object of <a class="link" href="lasso-LassoDataService.html#LassoDataService" title="struct LassoDataService"><span class="type">LassoDataService</span></a>.</p>
<div class="refsect3">
<a name="lasso-discovery-get-services.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>discovery</p></td>
<td class="parameter_description"><p>a <a class="link" href="lasso-LassoDiscovery.html#LassoDiscovery" title="struct LassoDiscovery"><span class="type">LassoDiscovery</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="lasso-discovery-get-services.returns"></a><h4>Returns</h4>
<p>a newly created GList object of <a class="link" href="lasso-LassoDataService.html#LassoDataService" title="struct LassoDataService"><span class="type">LassoDataService</span></a>;
or NULL if an error occured. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> LassoNode]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="LassoWsfProfileConstructor"></a><h3>LassoWsfProfileConstructor ()</h3>
<pre class="programlisting"><a class="link" href="lasso-LassoWsfProfile.html#LassoWsfProfile" title="struct LassoWsfProfile"><span class="returnvalue">LassoWsfProfile</span></a> *
<span class="c_punctuation">(</span>*LassoWsfProfileConstructor<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="lasso-LassoServer.html#LassoServer" title="struct LassoServer"><span class="type">LassoServer</span></a> *server</code></em>,
                               <em class="parameter"><code><a class="link" href="lasso-LassoDiscoResourceOffering.html#LassoDiscoResourceOffering" title="struct LassoDiscoResourceOffering"><span class="type">LassoDiscoResourceOffering</span></a> *offering</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-register-constructor-for-service-type"></a><h3>lasso_discovery_register_constructor_for_service_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
lasso_discovery_register_constructor_for_service_type
                               (<em class="parameter"><code><span class="type">gchar</span> const *service_type</code></em>,
                                <em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoWsfProfileConstructor" title="LassoWsfProfileConstructor ()"><span class="type">LassoWsfProfileConstructor</span></a> constructor</code></em>);</pre>
<p>This function permits to subclass of <a class="link" href="lasso-LassoWsfProfile.html#LassoWsfProfile" title="struct LassoWsfProfile"><span class="type">LassoWsfProfile</span></a> to register a
constructor for the service type they supports.</p>
<div class="refsect3">
<a name="lasso-discovery-register-constructor-for-service-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>service_type</p></td>
<td class="parameter_description"><p>the URI of the service type</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>constructor</p></td>
<td class="parameter_description"><p>a constructor function for the profile handling this service type</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="lasso-discovery-unregister-constructor-for-service-type"></a><h3>lasso_discovery_unregister_constructor_for_service_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
lasso_discovery_unregister_constructor_for_service_type
                               (<em class="parameter"><code><span class="type">gchar</span> const *service_type</code></em>,
                                <em class="parameter"><code><a class="link" href="lasso-LassoDiscovery.html#LassoWsfProfileConstructor" title="LassoWsfProfileConstructor ()"><span class="type">LassoWsfProfileConstructor</span></a> constructor</code></em>);</pre>
<p>This function permits to subclass of <a class="link" href="lasso-LassoWsfProfile.html#LassoWsfProfile" title="struct LassoWsfProfile"><span class="type">LassoWsfProfile</span></a> to unregister a
constructor for the service type they previously registered using
<a class="link" href="lasso-LassoDiscovery.html#lasso-discovery-register-constructor-for-service-type" title="lasso_discovery_register_constructor_for_service_type ()"><code class="function">lasso_discovery_register_constructor_for_service_type()</code></a>.</p>
<div class="refsect3">
<a name="lasso-discovery-unregister-constructor-for-service-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>service_type</p></td>
<td class="parameter_description"><p>the URI of the service type</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>constructor</p></td>
<td class="parameter_description"><p>a constructor function for the profile handling this service type</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="lasso-LassoDiscovery.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="LassoDiscovery"></a><h3>struct LassoDiscovery</h3>
<pre class="programlisting">struct LassoDiscovery {
	LassoWsfProfile parent;

	LassoDiscoResourceID *ResourceID;
	LassoDiscoEncryptedResourceID *EncryptedResourceID;
};
</pre>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>