Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > a5792cbc6dcdf6bdde626c0724c2c85a > files > 34

globus-ftp-client-doc-7.4-1.fc17.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<!-- THIS FILE IS AUTOMATICALLY GENERATED FROM THE GLOBUS SOURCE CODE
     DO NOT MODIFY.
-->
<title>Globus Reference Manual</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head>
<body>
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__globus__ftp__client__data.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Reading and Writing Data</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gae67f55dd87feea379ae4726fcd116a08"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__data.html#gae67f55dd87feea379ae4726fcd116a08">globus_ftp_client_data_callback_t</a> )(void *user_arg, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_object_t *error, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga806808e7efb4cffad9e6d932751975c3"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__data.html#ga806808e7efb4cffad9e6d932751975c3">globus_ftp_client_register_read</a> (<a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_byte_t *buffer, globus_size_t buffer_length, <a class="el" href="group__globus__ftp__client__data.html#gae67f55dd87feea379ae4726fcd116a08">globus_ftp_client_data_callback_t</a> callback, void *callback_arg)</td></tr>
<tr class="memitem:gac3ff58b56d3cbd945381c5b9f9f0f3a5"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__data.html#gac3ff58b56d3cbd945381c5b9f9f0f3a5">globus_ftp_client_register_write</a> (<a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_byte_t *buffer, globus_size_t buffer_length, globus_off_t offset, globus_bool_t eof, <a class="el" href="group__globus__ftp__client__data.html#gae67f55dd87feea379ae4726fcd116a08">globus_ftp_client_data_callback_t</a> callback, void *callback_arg)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Certain FTP client operations require the user to supply buffers for reading or writing data to an FTP server. </p>
<p>These operations are <a class="el" href="group__globus__ftp__client__operations.html#ga6fe365dd2dfac6da159ff389e1f76a9b" title="Get a file from an FTP server.">globus_ftp_client_get()</a>, <a class="el" href="group__globus__ftp__client__operations.html#gab2632967419fb566d6cf5b26cf0bbeb2" title="Get a file from an FTP server.">globus_ftp_client_partial_get()</a>, <a class="el" href="group__globus__ftp__client__operations.html#gab5ea9958c3f649258c25cae5d4e847f1" title="Store a file on an FTP server.">globus_ftp_client_put()</a>, <a class="el" href="group__globus__ftp__client__operations.html#ga35ba972b1faac5d9b5c62f3413f1282e" title="Store a file on an FTP server.">globus_ftp_client_partial_put()</a>, <a class="el" href="group__globus__ftp__client__operations.html#ga5fa70baff2a6fc9e90f30e19f8104027" title="Get a file listing from an FTP server.">globus_ftp_client_list()</a>, <a class="el" href="group__globus__ftp__client__operations.html#ga851bdcb0bca0928ba69af638d9e8802d" title="Get a machine parseable file listing from an FTP server.">globus_ftp_client_machine_list()</a>, <a class="el" href="group__globus__ftp__client__operations.html#ga2511fb841af9d5ab3bdb34343f3c3bb1" title="Get a machine parseable recursive file listing from an FTP server.">globus_ftp_client_recursive_list()</a>, and <a class="el" href="group__globus__ftp__client__operations.html#ga65cec516fcfc8b3e267f73dd31616db9" title="Get a file listing from an FTP server.">globus_ftp_client_verbose_list()</a>.</p>
<p>When doing these operations, the user must pass data buffers to the FTP Client library. Data is read or written directly from the data buffers, without any internal copies being done.</p>
<p>The functions in this section of the manual may be called as soon as the operation function has returned. Multiple data blocks may be registered with the FTP Client Library at once, and may be sent in parallel to or from the FTP server if the GridFTP protocol extensions are being used. </p>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="gae67f55dd87feea379ae4726fcd116a08"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* globus_ftp_client_data_callback_t)(void *user_arg, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_object_t *error, globus_byte_t *buffer, globus_size_t length, globus_off_t offset, globus_bool_t eof)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Data Callback. </p>
<p>Each read or write operation in the FTP Client library is asynchronous. A callback of this type is passed to each of the data operation function calls to let the user know when the data block has been processed.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">user_arg</td><td>The user_arg parameter passed to the read or write function. </td></tr>
    <tr><td class="paramname">handle</td><td>The handle on which the data block operation was done. </td></tr>
    <tr><td class="paramname">error</td><td>A Globus error object indicating any problem which occurred processing this data block, or or GLOBUS_SUCCESS if the operation completed successfully. </td></tr>
    <tr><td class="paramname">buffer</td><td>The data buffer passed to the original read or write call. </td></tr>
    <tr><td class="paramname">length</td><td>The amount of data in the data buffer. When reading data, this may be smaller than original buffer's length. </td></tr>
    <tr><td class="paramname">offset</td><td>The offset into the file which this data block contains. </td></tr>
    <tr><td class="paramname">eof</td><td>GLOBUS_TRUE if EOF has been reached on this data transfer, GLOBUS_FALSE otherwise. This may be set to GLOBUS_TRUE for multiple callbacks. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga806808e7efb4cffad9e6d932751975c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_ftp_client_register_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t&#160;</td>
          <td class="paramname"><em>buffer_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__data.html#gae67f55dd87feea379ae4726fcd116a08">globus_ftp_client_data_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a data buffer to handle a part of the FTP data transfer. </p>
<p>The data buffer will be associated with the current get being performed on this client handle.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>A pointer to a FTP Client handle which contains state information about the get operation. </td></tr>
    <tr><td class="paramname">buffer</td><td>A user-supplied buffer into which data from the FTP server will be stored. </td></tr>
    <tr><td class="paramname">buffer_length</td><td>The maximum amount of data that can be stored into the buffer. </td></tr>
    <tr><td class="paramname">callback</td><td>The function to be called once the data has been read. </td></tr>
    <tr><td class="paramname">callback_arg</td><td>Argument passed to the callback function</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__globus__ftp__client__operationattr.html#ga2095baf4619d706640d39d8ca64e1d3c" title="Set/Get the read_all attribute for an ftp client attribute set.">globus_ftp_client_operationattr_set_read_all()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gac3ff58b56d3cbd945381c5b9f9f0f3a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_ftp_client_register_write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t&#160;</td>
          <td class="paramname"><em>buffer_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_off_t&#160;</td>
          <td class="paramname"><em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_bool_t&#160;</td>
          <td class="paramname"><em>eof</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__data.html#gae67f55dd87feea379ae4726fcd116a08">globus_ftp_client_data_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a data buffer to handle a part of the FTP data transfer. </p>
<p>The data buffer will be associated with the current "put" being performed on this client handle. Multiple data buffers may be registered on a handle at once. There is no guaranteed ordering of the data callbacks in extended block mode.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>A pointer to a FTP Client handle which contains state information about the put operation. </td></tr>
    <tr><td class="paramname">buffer</td><td>A user-supplied buffer containing the data to write to the server. </td></tr>
    <tr><td class="paramname">buffer_length</td><td>The size of the buffer to be written. </td></tr>
    <tr><td class="paramname">offset</td><td>The offset of the buffer to be written. In extended-block mode, the data does not need to be sent in order. In stream mode (the default), data must be sent in sequential order. The behavior is undefined if multiple writes overlap. </td></tr>
    <tr><td class="paramname">eof</td><td></td></tr>
    <tr><td class="paramname">callback</td><td>The function to be called once the data has been written. </td></tr>
    <tr><td class="paramname">callback_arg</td><td>Argument passed to the callback function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<hr>
<p align="center">
<a href="http://www.globus.org/toolkit/about.html" target="_top">about globus</a> |
<a href="http://www.globus.org/toolkit/" target="_top">globus toolkit</a> |
<a href="https://dev.globus.org/wiki/Welcome/" target="_top">dev.globus</a>
<br>
<br>
Comments? <a href="mailto:webmaster@globus.org">webmaster@globus.org</a>
</body>
</html>