You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
4.8 KiB

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.77C-CCK-MCD Caldera Systems OpenLinux [en] (X11; U; Linux 2.4.2 i686) [Netscape]">
<title>OpenSLP Programmers Guide - SLPOpen</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
<h2>
SLPOpen</h2>
<hr WIDTH="100%">
<h3>
Include</h3>
&nbsp;
<h3>
Declaration</h3>
<tt>#include &lt;slp.h></tt>
<p><tt><a href="SLPError.html">SLPError</a> SLPOpen(const char* <a href="#lang">lang</a>,
<a href="SLPTypes.html#SLPBoolean">SLPBoolean</a>
<a href="#isasync">isasync</a>,
<a href="SLPTypes.html#SLPHandle">SLPHandle</a>*
<a href="#phslp">phslp</a>)</tt>
<br>&nbsp;
<h3>
Description</h3>
Returns a <tt>SLPHandle</tt> handle in the <tt>phslp</tt> parameter for
the language locale passed in as the <tt>lang</tt> parameter. The client
indicates if operations on the handle are to be synchronous or asynchronous
through the <tt>isasync</tt> parameter. The handle encapsulates the language
locale for SLP requests issued through the handle, and any other resources
required by the implementation. The return value of the function is an
<tt>SLPError</tt>
code indicating the status of the operation. Upon failure, the <tt>phslp</tt>
parameter is NULL.
<p>An <tt>SLPHandle</tt> can only be used for one SLP API operation at
a time. If the original operation was started asynchronously, any attempt
to start an additional operation on the handle while the original operation
is pending results in the return of an <tt>SLP_HANDLE_IN_USE</tt> error
from the API function. The <tt>SLPClose()</tt> API function terminates
any outstanding calls on the handle. If an implementation is unable to
support a asynchronous( resp. synchronous) operation, due to memory constraints
or lack of threading support, the <tt>SLP_NOT_IMPLEMENTED </tt>flag may
be returned when the isasync flag is <tt>SLP_TRUE</tt> (resp. <tt>SLP_FALSE</tt>).
<p>In the OpenSLP implementation, SLPHandles are used to cache information
that is costly to obtain (in terms of network usage and time).&nbsp;&nbsp;
Since the RFC 2614 API does not specify functions&nbsp; to initialize the
implementation library, OpenSLP keeps track of the number of SLPHandles
that are open.&nbsp;&nbsp; Several global library data structures are initialized
when the first SLPHandle is opened and maintained until the last SLPHandle
is closed.&nbsp; Therefore, it is most efficient to leave SLPHandles open
for as long as you will need them (often for the entire life of a process).&nbsp;&nbsp;&nbsp;
If you can help it, DO NOT make a habit of opening and closing SLPHandles
frequently.
<h3>
Parameters</h3>
<table BORDER CELLPADDING=5 NOSAVE >
<tr VALIGN=TOP NOSAVE>
<td NOSAVE><a NAME="lang"></a><tt>lang</tt></td>
<td NOSAVE>A pointer to null terminated array of characters containing
the RFC 1766 Language Tag for the natural language locale of requests and
registrations issued on the handle.&nbsp; Pass in NULL or the empty string,
"" to use the local the machine is configured to use.</td>
</tr>
<tr VALIGN=TOP NOSAVE>
<td><a NAME="isasync"></a><tt>isasync</tt></td>
<td NOSAVE>A <tt>SLPBoolean</tt> value indicating whether the <tt>SLPHandle</tt>
should be opened for asynchronous operation or not.</td>
</tr>
<tr VALIGN=TOP NOSAVE>
<td><a NAME="phslp"></a><tt>phslp</tt></td>
<td NOSAVE>A pointer to an <tt>SLPHandle</tt>, in which the open <tt>SLPHandle</tt>
is returned.&nbsp; If an error occurs, the value upon return is NULL.</td>
</tr>
</table>
<h3>
Returns</h3>
<table BORDER NOSAVE >
<tr>
<td>SLP_AUTHENTICATION_FAILED</td>
<td>If the SLP framework supports authentication, this error arises when
a authentication on an SLP message failed.</td>
</tr>
<tr>
<td>SLP_MEMORY_ALLOC_FAILED&nbsp;</td>
<td>Out of memory error</td>
</tr>
<tr>
<td>SLP_PARAMETER_BAD</td>
<td>If a parameter passed into a function is bad, this error is returned.</td>
</tr>
<tr>
<td>SLP_INTERNAL_SYSTEM_ERROR</td>
<td>A basic failure of the API causes this error to be returned. This occurs
when a system call or library fails. The operation could not recover.</td>
</tr>
<tr>
<td>SLP_HANDLE_IN_USE</td>
<td>Callback functions are not permitted to recursively call into the API
on the same SLPHandle, either directly or indirectly. If an attempt is
made to do so, this error is returned from the called API function.</td>
</tr>
</table>
<p>Be aware, especially if the call is async, of error codes that may be
passed to the SLPRegReport() callback function.
<br>&nbsp;
<h3>
Status</h3>
<table CELLPADDING=5 NOSAVE >
<tr VALIGN=TOP NOSAVE>
<td NOSAVE>OpenSLP 0.6.0</td>
<td NOSAVE>Fully implemented as specified by RFC 2614</td>
</tr>
</table>
<h3>
See Also</h3>
<a href="SLPClose.html">SLPClose()</a>
<br>&nbsp;
</body>
</html>