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
00066 typedef struct globus_i_net_manager_context_s *globus_net_manager_context_t;
00067
00068 globus_result_t
00069 globus_net_manager_context_init(
00070 globus_net_manager_context_t *context,
00071 const globus_net_manager_attr_t *attrs);
00072
00073 void
00074 globus_net_manager_context_destroy(
00075 globus_net_manager_context_t context);
00076
00077 globus_result_t
00078 globus_net_manager_context_pre_listen(
00079 globus_net_manager_context_t context,
00080 const char *task_id,
00081 const char *transport,
00082 const globus_net_manager_attr_t *attr_array,
00083 globus_net_manager_attr_t **attr_array_out);
00084
00085 globus_result_t
00086 globus_net_manager_context_post_listen(
00087 globus_net_manager_context_t context,
00088 const char *task_id,
00089 const char *transport,
00090 const char *local_contact,
00091 const globus_net_manager_attr_t *attr_array,
00092 char **local_contact_out,
00093 globus_net_manager_attr_t **attr_array_out);
00094
00095 globus_result_t
00096 globus_net_manager_context_end_listen(
00097 globus_net_manager_context_t context,
00098 const char *task_id,
00099 const char *transport,
00100 const char *local_contact,
00101 const globus_net_manager_attr_t *attr_array);
00102
00103 globus_result_t
00104 globus_net_manager_context_pre_accept(
00105 globus_net_manager_context_t context,
00106 const char *task_id,
00107 const char *transport,
00108 const char *local_contact,
00109 const globus_net_manager_attr_t *attr_array,
00110 globus_net_manager_attr_t **attr_array_out);
00111
00112 globus_result_t
00113 globus_net_manager_context_post_accept(
00114 globus_net_manager_context_t context,
00115 const char *task_id,
00116 const char *transport,
00117 const char *local_contact,
00118 const char *remote_contact,
00119 const globus_net_manager_attr_t *attr_array,
00120 globus_net_manager_attr_t **attr_array_out);
00121
00122 globus_result_t
00123 globus_net_manager_context_pre_connect(
00124 globus_net_manager_context_t context,
00125 const char *task_id,
00126 const char *transport,
00127 const char *remote_contact,
00128 const globus_net_manager_attr_t *attr_array,
00129 char **remote_contact_out,
00130 globus_net_manager_attr_t **attr_array_out);
00131
00132 globus_result_t
00133 globus_net_manager_context_post_connect(
00134 globus_net_manager_context_t context,
00135 const char *task_id,
00136 const char *transport,
00137 const char *local_contact,
00138 const char *remote_contact,
00139 const globus_net_manager_attr_t *attr_array,
00140 globus_net_manager_attr_t **attr_array_out);
00141
00142 globus_result_t
00143 globus_net_manager_context_pre_close(
00144 globus_net_manager_context_t context,
00145 const char *task_id,
00146 const char *transport,
00147 const char *local_contact,
00148 const char *remote_contact,
00149 const globus_net_manager_attr_t *attr_array);
00150
00151 globus_result_t
00152 globus_net_manager_context_post_close(
00153 globus_net_manager_context_t context,
00154 const char *task_id,
00155 const char *transport,
00156 const char *local_contact,
00157 const char *remote_contact,
00158 const globus_net_manager_attr_t *attr_array);
00159
00160
00161 typedef struct globus_i_net_manager_context_s
00162 {
00163 globus_list_t * managers;
00164 } globus_i_net_manager_context_t;
00165
00166 typedef struct globus_i_net_manager_context_entry_s
00167 {
00168 char * name;
00169 char * dll_name;
00170 globus_extension_handle_t ext_handle;
00171 globus_net_manager_t * manager;
00172 globus_net_manager_attr_t * attrs;
00173 } globus_i_net_manager_context_entry_t;
00174
00175 #ifdef __cplusplus
00176 }
00177 #endif
00178
00179 #endif