globus_ftp_client.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 1999-2006 University of Chicago
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef GLOBUS_FTP_CLIENT_H
00018 #define GLOBUS_FTP_CLIENT_H
00019 
00025 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00026 
00030 #endif
00031 
00076 #include "globus_ftp_control.h"
00077 #include "globus_priority_q.h"
00078 
00079 #ifdef __cplusplus
00080 extern "C" {
00081 #endif
00082 
00109 #define GLOBUS_FTP_CLIENT_MODULE (&globus_i_ftp_client_module)
00110 
00111 extern globus_module_descriptor_t globus_i_ftp_client_module;
00112 
00116 typedef enum
00117 {
00118     GLOBUS_FTP_CLIENT_ERROR_PARAMETER,
00119     GLOBUS_FTP_CLIENT_ERROR_MEMORY,
00120     GLOBUS_FTP_CLIENT_ERROR_ABORTED,
00121     GLOBUS_FTP_CLIENT_ERROR_INTERNAL,
00122     GLOBUS_FTP_CLIENT_ERROR_IN_USE,
00123     GLOBUS_FTP_CLIENT_ERROR_NOT_IN_USE,
00124     GLOBUS_FTP_CLIENT_ERROR_COMPLETED,
00125     GLOBUS_FTP_CLIENT_ERROR_INVALID_OPERATION,
00126     GLOBUS_FTP_CLIENT_ERROR_UNEXPECTED_EOF,
00127     GLOBUS_FTP_CLIENT_ERROR_NO_SUCH_FILE,
00128     GLOBUS_FTP_CLIENT_ERROR_PROTOCOL,
00129     GLOBUS_FTP_CLIENT_ERROR_RESPONSE,
00130     GLOBUS_FTP_CLIENT_ERROR_FEATURE,
00131     GLOBUS_FTP_CLIENT_ERROR_NO_RESTART_MARKER
00132 } globus_ftp_client_error_t;
00133 
00142 typedef enum
00143 {
00144     GLOBUS_FTP_CLIENT_RESTART_NONE,
00145     GLOBUS_FTP_CLIENT_RESTART_STREAM,
00146     GLOBUS_FTP_CLIENT_RESTART_EXTENDED_BLOCK
00147 }
00148 globus_ftp_client_restart_type_t;
00149 
00161 typedef struct
00162 {
00167     globus_ftp_client_restart_type_t            type;
00172     globus_off_t                                offset;
00177     globus_off_t                                ascii_offset;
00178 }
00179 globus_ftp_client_restart_stream_t;
00180 
00192 typedef struct
00193 {
00198     globus_ftp_client_restart_type_t            type;
00203     globus_fifo_t                               ranges;
00204 }
00205 globus_ftp_client_restart_extended_block_t;
00206 
00220 typedef union
00221 {
00222     globus_ftp_client_restart_type_t            type;
00223     globus_ftp_client_restart_stream_t          stream;
00224     globus_ftp_client_restart_extended_block_t  extended_block;
00225 }
00226 globus_ftp_client_restart_marker_t;
00227 
00242 typedef struct globus_i_ftp_client_handle_t * globus_ftp_client_handle_t;
00243 
00257 typedef struct globus_i_ftp_client_plugin_t * globus_ftp_client_plugin_t;
00258 
00278 typedef void (*globus_ftp_client_complete_callback_t) (
00279     void *                                      user_arg,
00280     globus_ftp_client_handle_t *                handle,
00281     globus_object_t *                           error);
00282 
00311 typedef void (*globus_ftp_client_data_callback_t) (
00312     void *                                      user_arg,
00313     globus_ftp_client_handle_t *                handle,
00314     globus_object_t *                           error,
00315     globus_byte_t *                             buffer,
00316     globus_size_t                               length,
00317     globus_off_t                                offset,
00318     globus_bool_t                               eof);
00319 
00333 typedef struct globus_i_ftp_client_operationattr_t *
00334 globus_ftp_client_operationattr_t;
00335 
00346 typedef struct
00347     globus_i_ftp_client_handleattr_t * globus_ftp_client_handleattr_t;
00360 #ifndef DOXYGEN
00361 globus_result_t
00362 globus_ftp_client_restart_marker_init(
00363     globus_ftp_client_restart_marker_t *        marker);
00364 
00365 globus_result_t
00366 globus_ftp_client_restart_marker_destroy(
00367     globus_ftp_client_restart_marker_t *        marker);
00368 
00369 globus_result_t
00370 globus_ftp_client_restart_marker_copy(
00371     globus_ftp_client_restart_marker_t *        new_marker,
00372     globus_ftp_client_restart_marker_t *        marker);
00373 
00374 globus_result_t
00375 globus_ftp_client_restart_marker_insert_range(
00376     globus_ftp_client_restart_marker_t *        marker,
00377     globus_off_t                                offset,
00378     globus_off_t                                end_offset);
00379 
00380 globus_result_t
00381 globus_ftp_client_restart_marker_set_offset(
00382     globus_ftp_client_restart_marker_t *        marker,
00383     globus_off_t                                offset);
00384 
00385 globus_result_t
00386 globus_ftp_client_restart_marker_set_ascii_offset(
00387     globus_ftp_client_restart_marker_t *        marker,
00388     globus_off_t                                offset,
00389     globus_off_t                                ascii_offset);
00390 
00391 globus_result_t
00392 globus_ftp_client_restart_marker_get_total(
00393     globus_ftp_client_restart_marker_t *        marker,
00394     globus_off_t *                              total_bytes);
00395 
00396 globus_result_t
00397 globus_ftp_client_restart_marker_get_first_block(
00398     globus_ftp_client_restart_marker_t *        marker,
00399     globus_off_t *                              offset,
00400     globus_off_t *                              end_offset);
00401 
00402 globus_result_t
00403 globus_ftp_client_restart_marker_to_string(
00404     globus_ftp_client_restart_marker_t *        marker,
00405     char **                                     marker_string);
00406 
00407 globus_result_t
00408 globus_ftp_client_restart_marker_from_string(
00409     globus_ftp_client_restart_marker_t *        marker,
00410     const char *                                marker_string);
00411 #endif
00412 
00426 #ifndef DOXYGEN
00427 globus_result_t
00428 globus_ftp_client_handle_init(
00429     globus_ftp_client_handle_t *                handle,
00430     globus_ftp_client_handleattr_t*             attr);
00431 
00432 globus_result_t
00433 globus_ftp_client_handle_destroy(
00434     globus_ftp_client_handle_t *                handle);
00435 
00436 globus_result_t
00437 globus_ftp_client_handle_borrow_connection(
00438     globus_ftp_client_handle_t *                from_handle,
00439     globus_bool_t                               from_is_source,
00440     globus_ftp_client_handle_t *                to_handle,
00441     globus_bool_t                               to_is_source);
00442 
00443 globus_result_t
00444 globus_ftp_client_handle_cache_url_state(
00445     globus_ftp_client_handle_t *                handle,
00446     const char *                                url);
00447 
00448 globus_result_t
00449 globus_ftp_client_handle_flush_url_state(
00450     globus_ftp_client_handle_t *                handle,
00451     const char *                                url);
00452 
00453 globus_result_t
00454 globus_ftp_client_handle_set_user_pointer(
00455     globus_ftp_client_handle_t *                handle,
00456     void *                                      user_pointer);
00457 
00458 globus_result_t
00459 globus_ftp_client_handle_get_user_pointer(
00460     const globus_ftp_client_handle_t *          handle,
00461     void **                                     user_pointer);
00462 
00463 globus_result_t
00464 globus_ftp_client_handle_get_restart_marker(
00465     const globus_ftp_client_handle_t *          handle,
00466     globus_ftp_client_restart_marker_t *        marker);
00467 
00468 globus_result_t
00469 globus_ftp_client_handle_add_plugin(
00470     globus_ftp_client_handle_t *                handle,
00471     globus_ftp_client_plugin_t *                plugin);
00472 
00473 globus_result_t
00474 globus_ftp_client_handle_remove_plugin(
00475     globus_ftp_client_handle_t *                handle,
00476     globus_ftp_client_plugin_t *                plugin);
00477 
00478 #endif
00479 
00492 #ifndef DOXYGEN
00493 globus_result_t
00494 globus_ftp_client_handleattr_init(
00495     globus_ftp_client_handleattr_t *            attr);
00496 
00497 globus_result_t
00498 globus_ftp_client_handleattr_destroy(
00499     globus_ftp_client_handleattr_t *            attr);
00500 
00501 globus_result_t
00502 globus_ftp_client_handleattr_copy(
00503     globus_ftp_client_handleattr_t *            dest,
00504     globus_ftp_client_handleattr_t *            src);
00505 
00506 globus_result_t
00507 globus_ftp_client_handleattr_add_cached_url(
00508     globus_ftp_client_handleattr_t *            attr,
00509     const char *                                url);
00510 
00511 globus_result_t
00512 globus_ftp_client_handleattr_remove_cached_url(
00513     globus_ftp_client_handleattr_t *            attr,
00514     const char *                                url);
00515 
00516 globus_result_t
00517 globus_ftp_client_handleattr_set_cache_all(
00518     globus_ftp_client_handleattr_t *            attr,
00519     globus_bool_t                               cache_all);
00520 
00521 globus_result_t
00522 globus_ftp_client_handleattr_get_cache_all(
00523     const globus_ftp_client_handleattr_t *      attr,
00524     globus_bool_t *                             cache_all);
00525 
00526 globus_result_t
00527 globus_ftp_client_handleattr_set_rfc1738_url(
00528     globus_ftp_client_handleattr_t *            attr,
00529     globus_bool_t                               rfc1738_url);
00530 
00531 globus_result_t
00532 globus_ftp_client_handleattr_get_rfc1738_url(
00533     const globus_ftp_client_handleattr_t *      attr,
00534     globus_bool_t *                             rfc1738_url);
00535 
00536 typedef void (*globus_ftp_client_pipeline_callback_t)(
00537     globus_ftp_client_handle_t *                handle,
00538     char **                                     source_url,
00539     char **                                     dest_url,
00540     void *                                      user_arg);
00541 
00542 globus_result_t
00543 globus_ftp_client_handleattr_set_pipeline(
00544     globus_ftp_client_handleattr_t *            attr,
00545     globus_size_t                               outstanding_commands,
00546     globus_ftp_client_pipeline_callback_t       pipeline_callback,
00547     void *                                      pipeline_arg);
00548 
00549 globus_result_t
00550 globus_ftp_client_handleattr_get_pipeline(
00551     const globus_ftp_client_handleattr_t *      attr,
00552     globus_size_t *                             outstanding_commands,
00553     globus_ftp_client_pipeline_callback_t *     pipeline_callback,
00554     void **                                     pipeline_arg);
00555 
00556 globus_result_t
00557 globus_ftp_client_handleattr_set_gridftp2(
00558     globus_ftp_client_handleattr_t *            attr,
00559     globus_bool_t                               gridftp2);
00560 
00561 globus_result_t
00562 globus_ftp_client_handleattr_get_gridftp2(
00563     const globus_ftp_client_handleattr_t *      attr,
00564     globus_bool_t *                             gridftp2);
00565 
00566 globus_result_t
00567 globus_ftp_client_handleattr_set_netlogger(
00568     globus_ftp_client_handleattr_t *            attr,
00569     globus_netlogger_handle_t *                 nl_handle);
00570 
00571 globus_result_t
00572 globus_ftp_client_handleattr_set_clientinfo(
00573     globus_ftp_client_handleattr_t *    attr,
00574     const char *                        app_name,
00575     const char *                        app_version,
00576     const char *                        other);
00577 
00578 globus_result_t
00579 globus_ftp_client_handleattr_get_clientinfo(
00580     globus_ftp_client_handleattr_t *    attr,
00581     char **                             app_name,
00582     char **                             app_version,
00583     char **                             other);
00584 
00585 globus_result_t
00586 globus_ftp_client_handleattr_set_netlogger_ftp_io(
00587     globus_ftp_client_handleattr_t *            attr,
00588     globus_netlogger_handle_t *                 nl_handle,
00589     globus_bool_t                               ftp,
00590     globus_bool_t                               io);
00591 
00592 globus_result_t
00593 globus_ftp_client_handleattr_remove_plugin(
00594     globus_ftp_client_handleattr_t *            attr,
00595     globus_ftp_client_plugin_t *                plugin);
00596 
00597 globus_result_t
00598 globus_ftp_client_handleattr_add_plugin(
00599     globus_ftp_client_handleattr_t *            attr,
00600     globus_ftp_client_plugin_t *                plugin);
00601 #endif
00602 
00611 #ifndef DOXYGEN
00612 
00613 globus_result_t
00614 globus_ftp_client_chmod(
00615     globus_ftp_client_handle_t *                u_handle,
00616     const char *                                url,
00617     int                                         mode,
00618     globus_ftp_client_operationattr_t *         attr,
00619     globus_ftp_client_complete_callback_t       complete_callback,
00620     void *                                      callback_arg);
00621 
00622 globus_result_t
00623 globus_ftp_client_chgrp(
00624     globus_ftp_client_handle_t *        u_handle,
00625     const char *                url,
00626     const char *                group,
00627     globus_ftp_client_operationattr_t *     attr,
00628     globus_ftp_client_complete_callback_t   complete_callback,
00629     void *                  callback_arg);
00630 
00631 globus_result_t
00632 globus_ftp_client_utime(
00633     globus_ftp_client_handle_t *        u_handle,
00634     const char *                url,
00635     const struct tm *           utime_time,
00636     globus_ftp_client_operationattr_t *     attr,
00637     globus_ftp_client_complete_callback_t   complete_callback,
00638     void *                  callback_arg);
00639 
00640 globus_result_t
00641 globus_ftp_client_symlink(
00642     globus_ftp_client_handle_t *        u_handle,
00643     const char *                url,
00644     const char *                link_url,
00645     globus_ftp_client_operationattr_t *     attr,
00646     globus_ftp_client_complete_callback_t   complete_callback,
00647     void *                  callback_arg);
00648 
00649 globus_result_t
00650 globus_ftp_client_cksm(
00651     globus_ftp_client_handle_t *                handle,
00652     const char *                                url,
00653     globus_ftp_client_operationattr_t *         attr,
00654     char *                                      cksm,
00655     globus_off_t                                offset,
00656     globus_off_t                                length,
00657     const char *                                algorithm,
00658     globus_ftp_client_complete_callback_t       complete_callback,
00659     void *                                      callback_arg);
00660 
00661 globus_result_t
00662 globus_ftp_client_delete(
00663     globus_ftp_client_handle_t *                handle,
00664     const char *                                url,
00665     globus_ftp_client_operationattr_t *         attr,
00666     globus_ftp_client_complete_callback_t       complete_callback,
00667     void *                                      callback_arg);
00668 
00669 globus_result_t
00670 globus_ftp_client_mkdir(
00671     globus_ftp_client_handle_t *                handle,
00672     const char *                                url,
00673     globus_ftp_client_operationattr_t *         attr,
00674     globus_ftp_client_complete_callback_t       complete_callback,
00675     void *                                      callback_arg);
00676 
00677 globus_result_t
00678 globus_ftp_client_rmdir(
00679     globus_ftp_client_handle_t *                handle,
00680     const char *                                url,
00681     globus_ftp_client_operationattr_t *         attr,
00682     globus_ftp_client_complete_callback_t       complete_callback,
00683     void *                                      callback_arg);
00684 
00685 globus_result_t
00686 globus_ftp_client_list(
00687     globus_ftp_client_handle_t *                handle,
00688     const char *                                url,
00689     globus_ftp_client_operationattr_t *         attr,
00690     globus_ftp_client_complete_callback_t       complete_callback,
00691     void *                                      callback_arg);
00692 
00693 globus_result_t
00694 globus_ftp_client_verbose_list(
00695     globus_ftp_client_handle_t *                handle,
00696     const char *                                url,
00697     globus_ftp_client_operationattr_t *         attr,
00698     globus_ftp_client_complete_callback_t       complete_callback,
00699     void *                                      callback_arg);
00700 
00701 globus_result_t
00702 globus_ftp_client_machine_list(
00703     globus_ftp_client_handle_t *                handle,
00704     const char *                                url,
00705     globus_ftp_client_operationattr_t *         attr,
00706     globus_ftp_client_complete_callback_t       complete_callback,
00707     void *                                      callback_arg);
00708 
00709 globus_result_t
00710 globus_ftp_client_recursive_list(
00711     globus_ftp_client_handle_t *        handle,
00712     const char *                url,
00713     globus_ftp_client_operationattr_t *     attr,
00714     globus_ftp_client_complete_callback_t   complete_callback,
00715     void *                  callback_arg);
00716 
00717 globus_result_t
00718 globus_ftp_client_mlst(
00719     globus_ftp_client_handle_t *                u_handle,
00720     const char *                                url,
00721     globus_ftp_client_operationattr_t *         attr,
00722     globus_byte_t **                            mlst_buffer,
00723     globus_size_t *                             mlst_buffer_length,
00724     globus_ftp_client_complete_callback_t       complete_callback,
00725     void *                                      callback_arg);
00726 
00727 globus_result_t
00728 globus_ftp_client_cwd(
00729     globus_ftp_client_handle_t *                u_handle,
00730     const char *                                url,
00731     globus_ftp_client_operationattr_t *         attr,
00732     globus_byte_t **                            cwd_buffer,
00733     globus_size_t *                             cwd_buffer_length,
00734     globus_ftp_client_complete_callback_t       complete_callback,
00735     void *                                      callback_arg);
00736 
00737 globus_result_t
00738 globus_ftp_client_stat(
00739     globus_ftp_client_handle_t *                u_handle,
00740     const char *                                url,
00741     globus_ftp_client_operationattr_t *         attr,
00742     globus_byte_t **                            stat_buffer,
00743     globus_size_t *                             stat_buffer_length,
00744     globus_ftp_client_complete_callback_t       complete_callback,
00745     void *                                      callback_arg);
00746 
00747 globus_result_t
00748 globus_ftp_client_move(
00749     globus_ftp_client_handle_t *                handle,
00750     const char *                                source_url,
00751     const char *                                dest_url,
00752     globus_ftp_client_operationattr_t *         attr,
00753     globus_ftp_client_complete_callback_t       complete_callback,
00754     void *                                      callback_arg);
00755 
00756 globus_result_t
00757 globus_ftp_client_get(
00758     globus_ftp_client_handle_t *                handle,
00759     const char *                                url,
00760     globus_ftp_client_operationattr_t *         attr,
00761     globus_ftp_client_restart_marker_t *        restart,
00762     globus_ftp_client_complete_callback_t       complete_callback,
00763     void *                                      callback_arg);
00764 
00765 globus_result_t
00766 globus_ftp_client_put(
00767     globus_ftp_client_handle_t *                handle,
00768     const char *                                url,
00769     globus_ftp_client_operationattr_t *         attr,
00770     globus_ftp_client_restart_marker_t *        restart,
00771     globus_ftp_client_complete_callback_t       complete_callback,
00772     void *                                      callback_arg);
00773 
00774 globus_result_t
00775 globus_ftp_client_third_party_transfer(
00776     globus_ftp_client_handle_t *                handle,
00777     const char *                                source_url,
00778     globus_ftp_client_operationattr_t *         source_attr,
00779     const char *                                dest_url,
00780     globus_ftp_client_operationattr_t *         dest_attr,
00781     globus_ftp_client_restart_marker_t *        restart,
00782     globus_ftp_client_complete_callback_t       complete_callback,
00783     void *                                      callback_arg);
00784 
00785 globus_result_t
00786 globus_ftp_client_partial_get(
00787     globus_ftp_client_handle_t *                handle,
00788     const char *                                url,
00789     globus_ftp_client_operationattr_t *         attr,
00790     globus_ftp_client_restart_marker_t *        restart,
00791     globus_off_t                                partial_offset,
00792     globus_off_t                                partial_end_offset,
00793     globus_ftp_client_complete_callback_t       complete_callback,
00794     void *                                      callback_arg);
00795 
00796 globus_result_t
00797 globus_ftp_client_partial_put(
00798     globus_ftp_client_handle_t *                handle,
00799     const char *                                url,
00800     globus_ftp_client_operationattr_t *         attr,
00801     globus_ftp_client_restart_marker_t *        restart,
00802     globus_off_t                                partial_offset,
00803     globus_off_t                                partial_end_offset,
00804     globus_ftp_client_complete_callback_t       complete_callback,
00805     void *                                      callback_arg);
00806 
00807 globus_result_t
00808 globus_ftp_client_partial_third_party_transfer(
00809     globus_ftp_client_handle_t *                handle,
00810     const char *                                source_url,
00811     globus_ftp_client_operationattr_t *         source_attr,
00812     const char *                                dest_url,
00813     globus_ftp_client_operationattr_t *         dest_attr,
00814     globus_ftp_client_restart_marker_t *        restart,
00815     globus_off_t                                partial_offset,
00816     globus_off_t                                partial_end_offset,
00817     globus_ftp_client_complete_callback_t       complete_callback,
00818     void *                                      callback_arg);
00819 
00820 globus_result_t
00821 globus_ftp_client_extended_get(
00822     globus_ftp_client_handle_t *                handle,
00823     const char *                                url,
00824     globus_ftp_client_operationattr_t *         attr,
00825     globus_ftp_client_restart_marker_t *        restart,
00826     const char *                                eret_alg_str,
00827     globus_ftp_client_complete_callback_t       complete_callback,
00828     void *                                      callback_arg);
00829 
00830 globus_result_t
00831 globus_ftp_client_extended_put(
00832     globus_ftp_client_handle_t *                handle,
00833     const char *                                url,
00834     globus_ftp_client_operationattr_t *         attr,
00835     globus_ftp_client_restart_marker_t *        restart,
00836     const char *                                esto_alg_str,
00837     globus_ftp_client_complete_callback_t       complete_callback,
00838     void *                                      callback_arg);
00839 
00840 globus_result_t
00841 globus_ftp_client_extended_third_party_transfer(
00842     globus_ftp_client_handle_t *                handle,
00843     const char *                                source_url,
00844     globus_ftp_client_operationattr_t *         source_attr,
00845     const char *                                eret_alg_str,
00846     const char *                                dest_url,
00847     globus_ftp_client_operationattr_t *         dest_attr,
00848     const char *                                esto_alg_str,
00849     globus_ftp_client_restart_marker_t *        restart,
00850     globus_ftp_client_complete_callback_t       complete_callback,
00851     void *                                      callback_arg);
00852 
00853 globus_result_t
00854 globus_ftp_client_abort(
00855     globus_ftp_client_handle_t *                handle);
00856 
00857 globus_result_t
00858 globus_ftp_client_modification_time(
00859     globus_ftp_client_handle_t *                handle,
00860     const char *                                url,
00861     globus_ftp_client_operationattr_t *         attr,
00862     globus_abstime_t *                          modification_time,
00863     globus_ftp_client_complete_callback_t       complete_callback,
00864     void *                                      callback_arg);
00865 
00866 globus_result_t
00867 globus_ftp_client_size(
00868     globus_ftp_client_handle_t *                handle,
00869     const char *                                url,
00870     globus_ftp_client_operationattr_t *         attr,
00871     globus_off_t *                              size,
00872     globus_ftp_client_complete_callback_t       complete_callback,
00873     void *                                      callback_arg);
00874 
00875 globus_result_t
00876 globus_ftp_client_exists(
00877     globus_ftp_client_handle_t *                handle,
00878     const char *                                url,
00879     globus_ftp_client_operationattr_t *         attr,
00880     globus_ftp_client_complete_callback_t       complete_callback,
00881     void *                                      callback_arg);
00882 #endif
00883 
00891 #ifndef DOXYGEN
00892 globus_result_t
00893 globus_ftp_client_operationattr_init(
00894     globus_ftp_client_operationattr_t *         attr);
00895 
00896 globus_result_t
00897 globus_ftp_client_operationattr_destroy(
00898     globus_ftp_client_operationattr_t *         attr);
00899 
00900 globus_result_t
00901 globus_ftp_client_operationattr_set_parallelism(
00902     globus_ftp_client_operationattr_t *         attr,
00903     const globus_ftp_control_parallelism_t *    parallelism);
00904 
00905 globus_result_t
00906 globus_ftp_client_operationattr_get_parallelism(
00907     const globus_ftp_client_operationattr_t *   attr,
00908     globus_ftp_control_parallelism_t *          parallelism);
00909 
00910 globus_result_t
00911 globus_ftp_client_operationattr_set_storage_module(
00912     globus_ftp_client_operationattr_t *     attr,
00913     const char *                            module_name,
00914     const char *                            module_args);
00915 
00916 globus_result_t
00917 globus_ftp_client_operationattr_get_storage_module(
00918     const globus_ftp_client_operationattr_t *   attr,
00919     char **                                 module_name,
00920     char **                                 module_args);
00921 
00922 globus_result_t
00923 globus_ftp_client_operationattr_set_net_stack(
00924     globus_ftp_client_operationattr_t *         attr,
00925     const char *                                driver_list);
00926 
00927 globus_result_t
00928 globus_ftp_client_operationattr_get_net_stack(
00929     const globus_ftp_client_operationattr_t *   attr,
00930     char **                                     driver_list);
00931 
00932 globus_result_t
00933 globus_ftp_client_operationattr_set_disk_stack(
00934     globus_ftp_client_operationattr_t *         attr,
00935     const char *                                driver_list);
00936 
00937 globus_result_t
00938 globus_ftp_client_operationattr_get_disk_stack(
00939     const globus_ftp_client_operationattr_t *   attr,
00940     char **                                     driver_list);
00941 
00942 globus_result_t
00943 globus_ftp_client_operationattr_set_authz_assert(
00944     globus_ftp_client_operationattr_t *         attr,
00945     const char *                                authz_assert,
00946     globus_bool_t                               cache_authz_assert);
00947 
00948 globus_result_t
00949 globus_ftp_client_operationattr_get_authz_assert(
00950     const globus_ftp_client_operationattr_t *   attr,
00951     char **                                     authz_assert,
00952     globus_bool_t *                             cache_authz_assert);
00953 
00954 globus_result_t
00955 globus_ftp_client_operationattr_set_striped(
00956     globus_ftp_client_operationattr_t *         attr,
00957     globus_bool_t                               striped);
00958 
00959 globus_result_t
00960 globus_ftp_client_operationattr_get_striped(
00961     const globus_ftp_client_operationattr_t *   attr,
00962     globus_bool_t *                             striped);
00963 
00964 globus_result_t
00965 globus_ftp_client_operationattr_set_layout(
00966     globus_ftp_client_operationattr_t *         attr,
00967     const globus_ftp_control_layout_t *         layout);
00968 
00969 globus_result_t
00970 globus_ftp_client_operationattr_get_layout(
00971     const globus_ftp_client_operationattr_t *   attr,
00972     globus_ftp_control_layout_t *               layout);
00973 
00974 globus_result_t
00975 globus_ftp_client_operationattr_set_tcp_buffer(
00976     globus_ftp_client_operationattr_t *         attr,
00977     const globus_ftp_control_tcpbuffer_t *      tcp_buffer);
00978 
00979 globus_result_t
00980 globus_ftp_client_operationattr_get_tcp_buffer(
00981     const globus_ftp_client_operationattr_t *   attr,
00982     globus_ftp_control_tcpbuffer_t *            tcp_buffer);
00983 
00984 globus_result_t
00985 globus_ftp_client_operationattr_set_type(
00986     globus_ftp_client_operationattr_t *         attr,
00987     globus_ftp_control_type_t                   type);
00988 
00989 globus_result_t
00990 globus_ftp_client_operationattr_get_type(
00991     const globus_ftp_client_operationattr_t *   attr,
00992     globus_ftp_control_type_t *                 type);
00993 
00994 globus_result_t
00995 globus_ftp_client_operationattr_set_mode(
00996     globus_ftp_client_operationattr_t *         attr,
00997     globus_ftp_control_mode_t                   mode);
00998 
00999 globus_result_t
01000 globus_ftp_client_operationattr_get_mode(
01001     const globus_ftp_client_operationattr_t *   attr,
01002     globus_ftp_control_mode_t *                 mode);
01003 
01004 globus_result_t
01005 globus_ftp_client_operationattr_set_list_uses_data_mode(
01006     const globus_ftp_client_operationattr_t *   attr,
01007     globus_bool_t                               list_uses_data_mode);
01008 
01009 globus_result_t
01010 globus_ftp_client_operationattr_get_list_uses_data_mode(
01011     const globus_ftp_client_operationattr_t *   attr,
01012     globus_bool_t *                             list_uses_data_mode);
01013 
01014 globus_result_t
01015 globus_ftp_client_operationattr_set_delayed_pasv(
01016     const globus_ftp_client_operationattr_t *   attr,
01017     globus_bool_t                               delayed_pasv);
01018 
01019 globus_result_t
01020 globus_ftp_client_operationattr_get_delayed_pasv(
01021     const globus_ftp_client_operationattr_t *   attr,
01022     globus_bool_t *                             delayed_pasv);
01023 
01024 globus_result_t
01025 globus_ftp_client_operationattr_set_dcau(
01026     globus_ftp_client_operationattr_t *         attr,
01027     const globus_ftp_control_dcau_t *           dcau);
01028 
01029 globus_result_t
01030 globus_ftp_client_operationattr_get_dcau(
01031     const globus_ftp_client_operationattr_t *   attr,
01032     globus_ftp_control_dcau_t *                 dcau);
01033 
01034 globus_result_t
01035 globus_ftp_client_operationattr_set_data_protection(
01036     globus_ftp_client_operationattr_t *         attr,
01037     globus_ftp_control_protection_t             protection);
01038 
01039 globus_result_t
01040 globus_ftp_client_operationattr_get_data_protection(
01041     const globus_ftp_client_operationattr_t *   attr,
01042     globus_ftp_control_protection_t *           protection);
01043 
01044 globus_result_t
01045 globus_ftp_client_operationattr_set_control_protection(
01046     globus_ftp_client_operationattr_t *         attr,
01047     globus_ftp_control_protection_t             protection);
01048 
01049 globus_result_t
01050 globus_ftp_client_operationattr_get_control_protection(
01051     const globus_ftp_client_operationattr_t *   attr,
01052     globus_ftp_control_protection_t *           protection);
01053     
01054 globus_result_t
01055 globus_ftp_client_operationattr_set_data_security(
01056     globus_ftp_client_operationattr_t *         attr,
01057     int                                         type,
01058     void *                                      credential);
01059 
01060 globus_result_t
01061 globus_ftp_client_operationattr_get_data_security(
01062     const globus_ftp_client_operationattr_t *   attr,
01063     int  *                                      type,
01064     void **                                     credential);
01065 
01066 globus_result_t
01067 globus_ftp_client_operationattr_set_resume_third_party_transfer(
01068     globus_ftp_client_operationattr_t *         attr,
01069     globus_bool_t                               resume);
01070 
01071 globus_result_t
01072 globus_ftp_client_operationattr_get_resume_third_party_transfer(
01073     const globus_ftp_client_operationattr_t *   attr,
01074     globus_bool_t *                             resume);
01075 
01076 globus_result_t
01077 globus_ftp_client_operationattr_set_authorization(
01078     globus_ftp_client_operationattr_t *         attr,
01079     gss_cred_id_t                               credential,
01080     const char *                                user,
01081     const char *                                password,
01082     const char *                                account,
01083     const char *                                subject);
01084 
01085 globus_result_t
01086 globus_ftp_client_operationattr_get_authorization(
01087     const globus_ftp_client_operationattr_t *   attr,
01088     gss_cred_id_t *                             credential,
01089     char **                                     user,
01090     char **                                     password,
01091     char **                                     account,
01092     char **                                     subject);
01093 
01094 globus_result_t
01095 globus_ftp_client_operationattr_set_append(
01096     globus_ftp_client_operationattr_t *         attr,
01097     globus_bool_t                               append);
01098 
01099 globus_result_t
01100 globus_ftp_client_operationattr_get_append(
01101     const globus_ftp_client_operationattr_t *   attr,
01102     globus_bool_t *                             append);
01103 
01104 globus_result_t
01105 globus_ftp_client_operationattr_set_read_all(
01106     globus_ftp_client_operationattr_t *         attr,
01107     globus_bool_t                               read_all,
01108     globus_ftp_client_data_callback_t           intermediate_callbacks,
01109     void *                                      intermediate_callback_arg);
01110 
01111 globus_result_t
01112 globus_ftp_client_operationattr_get_read_all(
01113     const globus_ftp_client_operationattr_t *   attr,
01114     globus_bool_t *                             read_all,
01115     globus_ftp_client_data_callback_t *         intermediate_callbacks,
01116     void **                                     intermediate_callback_arg);
01117 
01118 globus_result_t
01119 globus_ftp_client_operationattr_set_allow_ipv6(
01120     globus_ftp_client_operationattr_t *         attr,
01121     globus_bool_t                               allow);
01122 
01123 globus_result_t
01124 globus_ftp_client_operationattr_get_allow_ipv6(
01125     const globus_ftp_client_operationattr_t *   attr,
01126     globus_bool_t *                             allow);
01127 
01128 globus_result_t
01129 globus_ftp_client_operationattr_set_allocate(
01130     globus_ftp_client_operationattr_t *         attr,
01131     const globus_off_t                          allocated_size);
01132     
01133 globus_result_t
01134 globus_ftp_client_operationattr_get_allocate(
01135     const globus_ftp_client_operationattr_t *   attr,
01136     globus_off_t *                              allocated_size);
01137 
01138 globus_result_t
01139 globus_ftp_client_operationattr_copy(
01140     globus_ftp_client_operationattr_t *         dst,
01141     const globus_ftp_client_operationattr_t *   src);
01142 
01143 globus_result_t
01144 globus_ftp_client_operationattr_set_rfc1738_url(
01145     globus_ftp_client_operationattr_t *         attr,
01146     globus_bool_t                               rfc1738_url);
01147 
01148 globus_result_t
01149 globus_ftp_client_operationattr_get_rfc1738_url(
01150     const globus_ftp_client_operationattr_t *   attr,
01151     globus_bool_t *                             rfc1738_url);
01152 #endif
01153 
01174 #ifndef DOXYGEN
01175 globus_result_t
01176 globus_ftp_client_register_read(
01177     globus_ftp_client_handle_t *                handle,
01178     globus_byte_t *                             buffer,
01179     globus_size_t                               buffer_length,
01180     globus_ftp_client_data_callback_t           callback,
01181     void *                                      callback_arg);
01182 
01183 globus_result_t
01184 globus_ftp_client_register_write(
01185     globus_ftp_client_handle_t *                handle,
01186     globus_byte_t *                             buffer,
01187     globus_size_t                               buffer_length,
01188     globus_off_t                                offset,
01189     globus_bool_t                               eof,
01190     globus_ftp_client_data_callback_t           callback,
01191     void *                                      callback_arg);
01192 #endif
01193 
01200 typedef enum
01201 {
01202     GLOBUS_FTP_CLIENT_FALSE = GLOBUS_FALSE,
01203     GLOBUS_FTP_CLIENT_TRUE  = GLOBUS_TRUE,
01204     GLOBUS_FTP_CLIENT_MAYBE
01205 }
01206 globus_ftp_client_tristate_t;
01207 
01212 typedef enum
01213 {
01214     /* Buffer-size setting commands; keep these at the beginning of
01215      * the enum
01216      */
01217     GLOBUS_FTP_CLIENT_FEATURE_RETRBUFSIZE = 0,
01218     GLOBUS_FTP_CLIENT_FEATURE_RBUFSZ,
01219     GLOBUS_FTP_CLIENT_FEATURE_RBUFSIZ,
01220     GLOBUS_FTP_CLIENT_FEATURE_STORBUFSIZE,
01221     GLOBUS_FTP_CLIENT_FEATURE_SBUSSZ,
01222     GLOBUS_FTP_CLIENT_FEATURE_SBUFSIZ,
01223     GLOBUS_FTP_CLIENT_FEATURE_BUFSIZE,
01224     GLOBUS_FTP_CLIENT_FEATURE_SBUF,
01225     GLOBUS_FTP_CLIENT_FEATURE_ABUF,
01226     
01227     GLOBUS_FTP_CLIENT_FEATURE_REST_STREAM,
01228     GLOBUS_FTP_CLIENT_FEATURE_PARALLELISM,
01229     GLOBUS_FTP_CLIENT_FEATURE_DCAU,
01230     GLOBUS_FTP_CLIENT_FEATURE_DCSC,
01231     GLOBUS_FTP_CLIENT_FEATURE_ESTO,
01232     GLOBUS_FTP_CLIENT_FEATURE_ERET,
01233     GLOBUS_FTP_CLIENT_FEATURE_SIZE,
01234     GLOBUS_FTP_CLIENT_FEATURE_CKSM,
01235     GLOBUS_FTP_CLIENT_FEATURE_CHMOD,
01236     GLOBUS_FTP_CLIENT_FEATURE_AUTHZ_ASSERT,
01237     GLOBUS_FTP_CLIENT_FEATURE_CLIENTINFO,
01238     GLOBUS_FTP_CLIENT_FEATURE_SITE_SETNETSTACK,
01239     GLOBUS_FTP_CLIENT_FEATURE_DELAYED_PASV,
01240     GLOBUS_FTP_CLIENT_FEATURE_GETPUT,
01241     GLOBUS_FTP_CLIENT_FEATURE_MLST,
01242     GLOBUS_FTP_CLIENT_FEATURE_CHGRP,
01243     GLOBUS_FTP_CLIENT_FEATURE_UTIME,
01244     GLOBUS_FTP_CLIENT_FEATURE_SYMLINK,
01245     GLOBUS_FTP_CLIENT_FEATURE_MAX,
01246     GLOBUS_FTP_CLIENT_LAST_BUFFER_COMMAND = GLOBUS_FTP_CLIENT_FEATURE_ABUF,
01247     GLOBUS_FTP_CLIENT_FIRST_FEAT_FEATURE = GLOBUS_FTP_CLIENT_FEATURE_SBUF,
01248     GLOBUS_FTP_CLIENT_LAST_FEAT_FEATURE = GLOBUS_FTP_CLIENT_FEATURE_MLST
01249 }
01250 globus_ftp_client_probed_feature_t;
01260 typedef struct globus_i_ftp_client_features_s * globus_ftp_client_features_t;
01261 #ifndef DOXYGEN
01262 
01263 globus_result_t
01264 globus_ftp_client_feat(
01265     globus_ftp_client_handle_t *                 u_handle, 
01266     char *                                       url,
01267     globus_ftp_client_operationattr_t *          attr,
01268     globus_ftp_client_features_t *               u_features,
01269     globus_ftp_client_complete_callback_t        complete_callback,
01270     void *                                       callback_arg);
01271 
01272 globus_result_t
01273 globus_ftp_client_is_feature_supported(
01274     const globus_ftp_client_features_t *           u_features,
01275     globus_ftp_client_tristate_t *                 answer,
01276     const globus_ftp_client_probed_feature_t       feature);
01277 
01278 globus_result_t globus_ftp_client_features_init(
01279     globus_ftp_client_features_t *);
01280 globus_result_t globus_ftp_client_features_destroy(
01281     globus_ftp_client_features_t *);
01282 
01294 int
01295 globus_error_ftp_error_get_code(
01296     globus_object_t *                   error);
01297 
01298 #define GLOBUS_ERROR_TYPE_FTP (&GLOBUS_ERROR_TYPE_FTP_DEFINITION)
01299 extern const globus_object_type_t GLOBUS_ERROR_TYPE_FTP_DEFINITION;
01300    
01301 #endif
01302 EXTERN_C_END
01303 
01304 #endif /* GLOBUS_FTP_CLIENT_H */

Generated on 17 Mar 2017 for globus_ftp_client by  doxygen 1.4.7