00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_NET_MANAGER_CONTEXT_H
00018 #define GLOBUS_NET_MANAGER_CONTEXT_H 1
00019
00025 #include "globus_common.h"
00026 #include "globus_net_manager.h"
00027 #include "globus_net_manager_attr.h"
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00065 typedef struct globus_i_net_manager_context_s *globus_net_manager_context_t;
00066
00067 globus_result_t
00068 globus_net_manager_context_init(
00069 globus_net_manager_context_t *context,
00070 const globus_net_manager_attr_t *attrs);
00071
00072 void
00073 globus_net_manager_context_destroy(
00074 globus_net_manager_context_t context);
00075
00076 globus_result_t
00077 globus_net_manager_context_pre_listen(
00078 globus_net_manager_context_t context,
00079 const char *task_id,
00080 const char *transport,
00081 const globus_net_manager_attr_t *attr_array,
00082 globus_net_manager_attr_t **attr_array_out);
00083
00084 globus_result_t
00085 globus_net_manager_context_post_listen(
00086 globus_net_manager_context_t context,
00087 const char *task_id,
00088 const char *transport,
00089 const char *local_contact,
00090 const globus_net_manager_attr_t *attr_array,
00091 char **local_contact_out,
00092 globus_net_manager_attr_t **attr_array_out);
00093
00094 globus_result_t
00095 globus_net_manager_context_end_listen(
00096 globus_net_manager_context_t context,
00097 const char *task_id,
00098 const char *transport,
00099 const char *local_contact,
00100 const globus_net_manager_attr_t *attr_array);
00101
00102 globus_result_t
00103 globus_net_manager_context_pre_accept(
00104 globus_net_manager_context_t context,
00105 const char *task_id,
00106 const char *transport,
00107 const char *local_contact,
00108 const globus_net_manager_attr_t *attr_array,
00109 globus_net_manager_attr_t **attr_array_out);
00110
00111 globus_result_t
00112 globus_net_manager_context_post_accept(
00113 globus_net_manager_context_t context,
00114 const char *task_id,
00115 const char *transport,
00116 const char *local_contact,
00117 const char *remote_contact,
00118 const globus_net_manager_attr_t *attr_array,
00119 globus_net_manager_attr_t **attr_array_out);
00120
00121 globus_result_t
00122 globus_net_manager_context_pre_connect(
00123 globus_net_manager_context_t context,
00124 const char *task_id,
00125 const char *transport,
00126 const char *remote_contact,
00127 const globus_net_manager_attr_t *attr_array,
00128 char **remote_contact_out,
00129 globus_net_manager_attr_t **attr_array_out);
00130
00131 globus_result_t
00132 globus_net_manager_context_post_connect(
00133 globus_net_manager_context_t context,
00134 const char *task_id,
00135 const char *transport,
00136 const char *local_contact,
00137 const char *remote_contact,
00138 const globus_net_manager_attr_t *attr_array,
00139 globus_net_manager_attr_t **attr_array_out);
00140
00141 globus_result_t
00142 globus_net_manager_context_pre_close(
00143 globus_net_manager_context_t context,
00144 const char *task_id,
00145 const char *transport,
00146 const char *local_contact,
00147 const char *remote_contact,
00148 const globus_net_manager_attr_t *attr_array);
00149
00150 globus_result_t
00151 globus_net_manager_context_post_close(
00152 globus_net_manager_context_t context,
00153 const char *task_id,
00154 const char *transport,
00155 const char *local_contact,
00156 const char *remote_contact,
00157 const globus_net_manager_attr_t *attr_array);
00158
00159
00160 typedef struct globus_i_net_manager_context_s
00161 {
00162 globus_list_t * managers;
00163 } globus_i_net_manager_context_t;
00164
00165 typedef struct globus_i_net_manager_context_entry_s
00166 {
00167 char * name;
00168 char * dll_name;
00169 globus_extension_handle_t ext_handle;
00170 globus_net_manager_t * manager;
00171 globus_net_manager_attr_t * attrs;
00172 } globus_i_net_manager_context_entry_t;
00173
00174 #ifdef __cplusplus
00175 }
00176 #endif
00177
00178 #endif