globus_gass_transfer.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 
00022 #ifndef GLOBUS_GASS_TRANSFER_H
00023 #define GLOBUS_GASS_TRANSFER_H
00024 
00025 #include "globus_common.h"
00026 
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030 
00031 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00032 
00036 #endif
00037 
00094 extern globus_module_descriptor_t               globus_i_gass_transfer_module;
00095 
00100 #define GLOBUS_GASS_TRANSFER_MODULE             (&globus_i_gass_transfer_module)
00101 
00102 #define _GTSL(s) globus_common_i18n_get_string( \
00103                     GLOBUS_GASS_TRANSFER_MODULE, \
00104                     s)
00105 
00127 typedef globus_handle_t globus_gass_transfer_request_t;
00128 typedef globus_handle_t globus_gass_transfer_listener_t;
00129 
00133 typedef globus_object_t * globus_gass_transfer_requestattr_t;
00137 typedef globus_object_t * globus_gass_transfer_listenerattr_t;
00138 
00139 /* Module Specific Types */
00144 typedef enum
00145 {
00147     GLOBUS_GASS_TRANSFER_REQUEST_TYPE_INVALID,
00149     GLOBUS_GASS_TRANSFER_REQUEST_TYPE_GET,
00151     GLOBUS_GASS_TRANSFER_REQUEST_TYPE_PUT,
00153     GLOBUS_GASS_TRANSFER_REQUEST_TYPE_APPEND
00154 } globus_gass_transfer_request_type_t;
00155 
00156 typedef enum
00157 {
00158     GLOBUS_GASS_TRANSFER_FILE_MODE_BINARY,
00159     GLOBUS_GASS_TRANSFER_FILE_MODE_TEXT
00160 } globus_gass_transfer_file_mode_t;
00161 
00162 
00163 typedef enum
00164 {
00165     GLOBUS_GASS_TRANSFER_AUTHORIZE_SELF,
00166     GLOBUS_GASS_TRANSFER_AUTHORIZE_HOST,
00167     GLOBUS_GASS_TRANSFER_AUTHORIZE_SUBJECT,
00168     GLOBUS_GASS_TRANSFER_AUTHORIZE_CALLBACK
00169 } globus_gass_transfer_authorization_t;
00170 
00171 
00172 /* globus_gass_transfer_request_status will return only the
00173  * "visible" subset:
00174  *     GLOBUS_GASS_TRANSFER_REQUEST_INVALID
00175  *     GLOBUS_GASS_TRANSFER_REQUEST_STARTING
00176  *     GLOBUS_GASS_TRANSFER_REQUEST_PENDING (PENDING, ACTING,
00177  *                                              ACTING_TO_PENDING)
00178  *     GLOBUS_GASS_TRANSFER_REQUEST_FAILED  (FAILED, USER_FAIL, ACTING_TO_FAIL)
00179  *     GLOBUS_GASS_TRANSFER_REQUEST_REFERRED (REFERRING, ACTING_TO_REFERRING,
00180  *                                              ACTING_TO_REFERRING2)
00181  *     GLOBUS_GASS_TRANSFER_REQUEST_DENIED
00182  *     GLOBUS_GASS_TRANSFER_REQUEST_DONE
00183  */
00188 typedef enum
00189 {
00190     GLOBUS_GASS_TRANSFER_REQUEST_INVALID,  
00191     GLOBUS_GASS_TRANSFER_REQUEST_STARTING, 
00194     GLOBUS_GASS_TRANSFER_REQUEST_PENDING,  
00195     GLOBUS_GASS_TRANSFER_REQUEST_FAILED,   
00198     GLOBUS_GASS_TRANSFER_REQUEST_REFERRED, 
00201     GLOBUS_GASS_TRANSFER_REQUEST_DENIED,   
00203     GLOBUS_GASS_TRANSFER_REQUEST_DONE,     
00204 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
00205     GLOBUS_GASS_TRANSFER_REQUEST_ACCEPTING,
00210     GLOBUS_GASS_TRANSFER_REQUEST_ACTING,   /* op passed to request */
00211     GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_PENDING, /* calling back to user */
00212     GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_FAILING, /* op passed to request, and
00213                                                     user called fail */
00214     GLOBUS_GASS_TRANSFER_REQUEST_FAILING,   /* user called fail, or op
00215                                                completed, user callback
00216                                                started */
00217     GLOBUS_GASS_TRANSFER_REQUEST_USER_FAIL, /* user called fail before
00218                                                ready/referred/denied */
00219     GLOBUS_GASS_TRANSFER_REQUEST_REFERRING,         /* proto called referred,
00220                                                callback pending */
00221     GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_REFERRING, /* proto called referred,
00222                                                 op in progress */
00223     GLOBUS_GASS_TRANSFER_REQUEST_FINISHING, /* op completed successfully,
00224                                                with last data, user callback
00225                                                started*/
00226     GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL1, /* user called fail before
00227                                                   new_listener_request */
00228     GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL2, /* user called fail before
00229                                                  authorize/refer/deny */
00230     GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL3, /* user called fail before
00231                                                  request_ready */
00232     GLOBUS_GASS_TRANSFER_REQUEST_STARTING2, /* server not authorized/denied/failed */
00233     GLOBUS_GASS_TRANSFER_REQUEST_STARTING3  /* server not authorized/denied/failed */
00234 #endif
00235 } globus_gass_transfer_request_status_t;
00236 
00237 typedef enum
00238 {
00239     GLOBUS_GASS_TRANSFER_LISTENER_INVALID,     /* handle no longer valid */
00240     GLOBUS_GASS_TRANSFER_LISTENER_STARTING,    /* new listener called */
00241     GLOBUS_GASS_TRANSFER_LISTENER_LISTENING,   /* register listen/
00242                                                   proto->register listen */
00243     GLOBUS_GASS_TRANSFER_LISTENER_READY,       /* proto calls listener_ready */
00244     GLOBUS_GASS_TRANSFER_LISTENER_ACCEPTING,   /* register_accept() */
00245     GLOBUS_GASS_TRANSFER_LISTENER_CLOSING1,    /* close_listener before
00246                                                   listener_ready called */
00247     GLOBUS_GASS_TRANSFER_LISTENER_CLOSING2,    /* close listener before
00248                                                   new_request */
00249     GLOBUS_GASS_TRANSFER_LISTENER_CLOSED       /* listener is closed */
00250 } globus_gass_transfer_listener_status_t;
00251 
00256 enum
00257 {
00259     GLOBUS_GASS_TRANSFER_ERROR_BAD_PORT = 2,
00261     GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR,
00263     GLOBUS_GASS_TRANSFER_ERROR_BAD_URL,
00265     GLOBUS_GASS_TRANSFER_ERROR_NOT_SUPPORTED,
00267     GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED,
00269     GLOBUS_GASS_TRANSFER_ERROR_MALLOC_FAILED,
00271     GLOBUS_GASS_TRANSFER_ERROR_NOT_INITIALIZED,
00273     GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER,
00275     GLOBUS_GASS_TRANSFER_ERROR_NOT_REGISTERED,
00277     GLOBUS_GASS_TRANSFER_ERROR_NOT_FOUND,
00279     GLOBUS_GASS_TRANSFER_ERROR_INVALID_USE,
00281     GLOBUS_GASS_TRANSFER_ERROR_TOO_LARGE,
00283     GLOBUS_GASS_TRANSFER_ERROR_REQUEST_FAILED,
00285     GLOBUS_GASS_TRANSFER_ERROR_DONE,
00287     GLOBUS_GASS_TRANSFER_ERROR_ALREADY_REGISTERED,
00289     GLOBUS_GASS_TRANSFER_ERROR_OPEN_FAILED,
00291     GLOBUS_GASS_TRANSFER_ERROR_TRANSFER_FAILED
00292 };
00293 
00301 enum
00302 {
00303     GLOBUS_GASS_TRANSFER_DEFAULT_BUFFER_LENGTH = 1024
00304 };
00305 
00313 #define GLOBUS_GASS_TRANSFER_LENGTH_UNKNOWN 0UL
00314 
00322 #define GLOBUS_GASS_TRANSFER_TIMESTAMP_UNKNOWN 0UL
00323 
00324 typedef void
00325 (* globus_gass_transfer_callback_t)(
00326     void *                                      arg,
00327     globus_gass_transfer_request_t              request);
00328 /* Client Interface */
00349 int
00350 globus_gass_transfer_register_get(
00351     globus_gass_transfer_request_t *            request,
00352     globus_gass_transfer_requestattr_t *        attr,
00353     char *                                      url,
00354     globus_gass_transfer_callback_t             callback,
00355     void *                                      user_arg);
00356 
00357 int
00358 globus_gass_transfer_get(
00359     globus_gass_transfer_request_t *            request,
00360     globus_gass_transfer_requestattr_t *        attr,
00361     char *                                      url);
00362 
00363 int
00364 globus_gass_transfer_register_put(
00365     globus_gass_transfer_request_t *            request,
00366     globus_gass_transfer_requestattr_t *        attr,
00367     char *                                      url,
00368     globus_size_t                               length,
00369     globus_gass_transfer_callback_t             callback,
00370     void *                                      user_arg);
00371 
00372 int
00373 globus_gass_transfer_put(
00374     globus_gass_transfer_request_t *            request,
00375     globus_gass_transfer_requestattr_t *        attr,
00376     char *                                      url,
00377     globus_size_t                               length);
00378 
00379 int
00380 globus_gass_transfer_register_append(
00381     globus_gass_transfer_request_t *            request,
00382     globus_gass_transfer_requestattr_t *        attr,
00383     char *                                      url,
00384     globus_size_t                               length,
00385     globus_gass_transfer_callback_t             callback,
00386     void *                                      user_arg);
00387 
00388 int
00389 globus_gass_transfer_append(
00390     globus_gass_transfer_request_t *            request,
00391     globus_gass_transfer_requestattr_t *        attr,
00392     char *                                      url,
00393     globus_size_t                               length);
00394 
00430 typedef void
00431 (* globus_gass_transfer_close_callback_t)(
00432     void *                                      callback_arg,
00433     globus_gass_transfer_listener_t             listener);
00434 
00441 typedef void
00442 (* globus_gass_transfer_listen_callback_t)(
00443     void *                                      callback_arg,
00444     globus_gass_transfer_listener_t             listener);
00445 
00446 int
00447 globus_gass_transfer_create_listener(
00448     globus_gass_transfer_listener_t *           listener,
00449     globus_gass_transfer_listenerattr_t *       attr,
00450     char *                                      scheme);
00451 
00452 int
00453 globus_gass_transfer_close_listener(
00454     globus_gass_transfer_listener_t             listener,
00455     globus_gass_transfer_close_callback_t       callback,
00456     void *                                      user_arg);
00457 
00458 int
00459 globus_gass_transfer_register_listen(
00460     globus_gass_transfer_listener_t             listener,
00461     globus_gass_transfer_listen_callback_t      callback,
00462     void *                                      user_arg);
00463 
00464 int
00465 globus_gass_transfer_register_accept(
00466     globus_gass_transfer_request_t *            request,
00467     globus_gass_transfer_requestattr_t *        attr,
00468     globus_gass_transfer_listener_t             listener,
00469     globus_gass_transfer_callback_t             callback,
00470     void *                                      user_arg);
00471 
00472 int
00473 globus_gass_transfer_refer(
00474     globus_gass_transfer_request_t              request,
00475     char **                                     urls,
00476     globus_size_t                               num_urls);
00477 
00478 int
00479 globus_gass_transfer_authorize(
00480     globus_gass_transfer_request_t              request,
00481     globus_size_t                               total_length);
00482 
00483 int
00484 globus_gass_transfer_deny(
00485     globus_gass_transfer_request_t              request,
00486     int                                         reason,
00487     char *                                      message);
00488 
00489 char *
00490 globus_gass_transfer_listener_get_base_url(
00491     globus_gass_transfer_listener_t             listener);
00492 
00493 void *
00494 globus_gass_transfer_listener_get_user_pointer(
00495     globus_gass_transfer_listener_t             listener);
00496 
00497 int
00498 globus_gass_transfer_listener_set_user_pointer(
00499     globus_gass_transfer_listener_t             listener,
00500     void *                                      user_pointer);
00501 
00526 typedef void
00527 (* globus_gass_transfer_bytes_callback_t)(
00528     void *                                      arg,
00529     globus_gass_transfer_request_t              request,
00530     globus_byte_t *                             bytes,
00531     globus_size_t                               length,
00532     globus_bool_t                               last_data);
00533 
00534 int
00535 globus_gass_transfer_send_bytes(
00536     globus_gass_transfer_request_t              request,
00537     globus_byte_t *                             bytes,
00538     globus_size_t                               send_length,
00539     globus_bool_t                               last_data,
00540     globus_gass_transfer_bytes_callback_t       callback,
00541     void *                                      user_arg);
00542 
00543 int
00544 globus_gass_transfer_receive_bytes(
00545     globus_gass_transfer_request_t              request,
00546     globus_byte_t *                             bytes,
00547     globus_size_t                               max_length,
00548     globus_size_t                               wait_for_length,
00549     globus_gass_transfer_bytes_callback_t       callback,
00550     void *                                      user_arg);
00551 
00552 int
00553 globus_gass_transfer_fail(
00554     globus_gass_transfer_request_t              request,
00555     globus_gass_transfer_callback_t             callback,
00556     void *                                      user_arg);
00574 #ifndef DOXYGEN
00575 typedef struct
00576 {
00577     char **                                     url;
00578     globus_size_t                               count;
00579 } globus_gass_transfer_referral_t;
00580 
00581 
00582 globus_size_t
00583 globus_gass_transfer_referral_get_count(
00584     globus_gass_transfer_referral_t *           referral);
00585 
00586 char *
00587 globus_gass_transfer_referral_get_url(
00588     globus_gass_transfer_referral_t *           referral,
00589     globus_size_t                               index);
00590 
00591 int
00592 globus_gass_transfer_referral_destroy(
00593     globus_gass_transfer_referral_t *           referral);
00594 
00595 #endif
00596 
00597 
00598 /* Request Accessors */
00625 #ifndef DOXYGEN
00626 globus_gass_transfer_request_type_t
00627 globus_gass_transfer_request_get_type(
00628     globus_gass_transfer_request_t              request);
00629 
00630 globus_gass_transfer_request_status_t
00631 globus_gass_transfer_request_get_status(
00632     globus_gass_transfer_request_t              request);
00633 
00634 char *
00635 globus_gass_transfer_request_get_subject(
00636     globus_gass_transfer_request_t              request);
00637 
00638 int
00639 globus_gass_transfer_request_set_subject(
00640     globus_gass_transfer_request_t              request,
00641     char *                                      subject);
00642 
00643 int
00644 globus_gass_transfer_request_get_referral(
00645     globus_gass_transfer_request_t              request,
00646     globus_gass_transfer_referral_t *           referral);
00647 
00648 char *
00649 globus_gass_transfer_request_get_url(
00650     globus_gass_transfer_request_t              request);
00651 
00652 int
00653 globus_gass_transfer_request_set_url(
00654     globus_gass_transfer_request_t              request,
00655     char *                                      url);
00656 
00657 globus_size_t
00658 globus_gass_transfer_request_get_length(
00659     globus_gass_transfer_request_t              request);
00660 
00661 int
00662 globus_gass_transfer_request_get_denial_reason(
00663     globus_gass_transfer_request_t              request);
00664 
00665 char *
00666 globus_gass_transfer_request_get_denial_message(
00667     globus_gass_transfer_request_t              request);
00668 
00669 void *
00670 globus_gass_transfer_request_get_user_pointer(
00671     globus_gass_transfer_request_t              request);
00672 
00673 int
00674 globus_gass_transfer_request_set_user_pointer(
00675     globus_gass_transfer_request_t              request,
00676     void *                                      user_pointer);
00677 
00678 int
00679 globus_gass_transfer_request_destroy(
00680     globus_gass_transfer_request_t              request);
00681 
00682 int
00683 globus_gass_transfer_request_set_type(
00684     globus_gass_transfer_request_t              request,
00685     globus_gass_transfer_request_type_t         type);
00686 #endif
00687 
00688 
00696 #ifndef DOXYGEN
00697 int
00698 globus_gass_transfer_requestattr_init(
00699     globus_gass_transfer_requestattr_t *        attr,
00700     char *                                      url_scheme);
00701 
00702 int
00703 globus_gass_transfer_requestattr_destroy(
00704     globus_gass_transfer_requestattr_t *        attr);
00705 
00706 int
00707 globus_gass_transfer_listenerattr_init(
00708     globus_gass_transfer_listenerattr_t *       attr,
00709     char *                                      url_scheme);
00710 
00711 int
00712 globus_gass_transfer_listenerattr_destroy(
00713     globus_gass_transfer_listenerattr_t *       attr);
00714 
00715 /* Base Attribute Accessors */
00716 int
00717 globus_gass_transfer_requestattr_set_proxy_url(
00718     globus_gass_transfer_requestattr_t *        attr,
00719     char *                                      proxy_url);
00720 
00721 int
00722 globus_gass_transfer_requestattr_get_proxy_url(
00723     globus_gass_transfer_requestattr_t *        attr,
00724     char **                                     proxy_url);
00725 
00726 int
00727 globus_gass_transfer_requestattr_set_block_size(
00728     globus_gass_transfer_requestattr_t *        attr,
00729     globus_size_t                               block_size);
00730 
00731 int
00732 globus_gass_transfer_requestattr_get_block_size(
00733     globus_gass_transfer_requestattr_t *        attr,
00734     globus_size_t *                             block_size);
00735 
00736 int
00737 globus_gass_transfer_requestattr_set_file_mode(
00738     globus_gass_transfer_requestattr_t *        attr,
00739     globus_gass_transfer_file_mode_t            file_mode);
00740 
00741 int
00742 globus_gass_transfer_requestattr_get_file_mode(
00743     globus_gass_transfer_requestattr_t *        attr,
00744     globus_gass_transfer_file_mode_t *          file_mode);
00745 
00746 int
00747 globus_gass_transfer_requestattr_set_connection_reuse(
00748     globus_gass_transfer_requestattr_t *        attr,
00749     globus_bool_t                               connection_reuse);
00750 
00751 int
00752 globus_gass_transfer_requestattr_get_connection_reuse(
00753     globus_gass_transfer_requestattr_t *        attr,
00754     globus_bool_t *                             connection_reuse);
00755 
00756 /* Socket Attribute Accessors */
00757 int
00758 globus_gass_transfer_requestattr_set_socket_sndbuf(
00759     globus_gass_transfer_requestattr_t *        attr,
00760     int                                         sndbuf);
00761 
00762 int
00763 globus_gass_transfer_requestattr_get_socket_sndbuf(
00764     globus_gass_transfer_requestattr_t *        attr,
00765     int *                                       sndbuf);
00766 
00767 int
00768 globus_gass_transfer_requestattr_set_socket_rcvbuf(
00769     globus_gass_transfer_requestattr_t *        attr,
00770     int                                         rcvbuf);
00771 
00772 int
00773 globus_gass_transfer_requestattr_get_socket_rcvbuf(
00774     globus_gass_transfer_requestattr_t *        attr,
00775     int *                                       rcvbuf);
00776 
00777 int
00778 globus_gass_transfer_requestattr_set_socket_nodelay(
00779     globus_gass_transfer_requestattr_t *        attr,
00780     globus_bool_t                               nodelay);
00781 
00782 int
00783 globus_gass_transfer_requestattr_get_socket_nodelay(
00784     globus_gass_transfer_requestattr_t *        attr,
00785     globus_bool_t *                             nodelay);
00786 
00787 /* Security attribute accessors */
00788 int
00789 globus_gass_transfer_secure_requestattr_set_authorization(
00790     globus_gass_transfer_requestattr_t *        attr,
00791     globus_gass_transfer_authorization_t        mode,
00792     char *                                      subject);
00793 
00794 int
00795 globus_gass_transfer_secure_requestattr_get_authorization(
00796     globus_gass_transfer_requestattr_t *        attr,
00797     globus_gass_transfer_authorization_t *      mode,
00798     char **                                     subject);
00799 #endif
00800 
00805 #ifndef DOXYGEN
00806 int
00807 globus_gass_transfer_listenerattr_set_backlog(
00808     globus_gass_transfer_listenerattr_t *       attr,
00809     int                                         backlog);
00810 
00811 int
00812 globus_gass_transfer_listenerattr_get_backlog(
00813     globus_gass_transfer_listenerattr_t *       attr,
00814     int *                                       backlog);
00815 
00816 int
00817 globus_gass_transfer_listenerattr_set_port(
00818     globus_gass_transfer_listenerattr_t *       attr,
00819     unsigned short                              port);
00820 
00821 int
00822 globus_gass_transfer_listenerattr_get_port(
00823     globus_gass_transfer_listenerattr_t *       attr,
00824     unsigned short *                            port);
00825 #endif
00826 
00831 extern const globus_object_type_t
00832 GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION;
00833 
00834 #define GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR \
00835         (&GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION)
00836 
00837 globus_object_t *
00838 globus_gass_transfer_requestattr_initialize(
00839     globus_object_t *                           obj,
00840     char *                                      proxy_url,
00841     globus_size_t                               block_size,
00842     globus_gass_transfer_file_mode_t            file_mode,
00843     globus_bool_t                               connection_reuse);
00844 
00845 extern const globus_object_type_t
00846 GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION;
00847 
00848 #define GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR \
00849         (&GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION)
00850 
00851 globus_object_t *
00852 globus_gass_transfer_socket_requestattr_initialize(
00853     globus_object_t *                           obj,
00854     char *                                      proxy_url,
00855     globus_size_t                               block_size,
00856     globus_gass_transfer_file_mode_t            file_mode,
00857     globus_bool_t                               connection_reuse,
00858     int                                         sndbuf,
00859     int                                         rcvbuf,
00860     globus_bool_t                               nodelay);
00861 
00862 extern const globus_object_type_t
00863 GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION;
00864 
00865 #define GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR \
00866         (&GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION)
00867 
00868 globus_object_t *
00869 globus_gass_transfer_secure_requestattr_initialize(
00870     globus_object_t *                           obj,
00871     char *                                      proxy_url,
00872     globus_size_t                               block_size,
00873     globus_gass_transfer_file_mode_t            file_mode,
00874     globus_bool_t                               connection_reuse,
00875     int                                         sndbuf,
00876     int                                         rcvbuf,
00877     globus_bool_t                               nodelay,
00878     globus_gass_transfer_authorization_t        authorization,
00879     char *                                      subject);
00880 
00881 /* Listener Attribute Object Types */
00882 extern const globus_object_type_t
00883 GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION;
00884 
00885 #define GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR \
00886         (&GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION)
00887 
00888 globus_object_t *
00889 globus_gass_transfer_listenerattr_initialize(
00890     globus_object_t *                           obj,
00891     int                                         backlog,
00892     unsigned short                              port);
00893 
00894 #ifdef __cplusplus
00895 }
00896 #endif
00897 
00898 #endif /* GLOBUS_GASS_TRANSFER_H */

Generated on 27 Oct 2014 for globus_gass_transfer by  doxygen 1.4.7