globus_net_manager  0.8
globus_net_manager_context.h
Go to the documentation of this file.
1 /*
2  * Copyright 1999-2014 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef GLOBUS_NET_MANAGER_CONTEXT_H
18 #define GLOBUS_NET_MANAGER_CONTEXT_H 1
19 
25 #include "globus_common.h"
26 #include "globus_net_manager.h"
28 
29 #ifdef __cplusplus
30 extern "C"
31 #endif
32 
33 typedef struct globus_i_net_manager_context_s *globus_net_manager_context_t;
34 
57 globus_result_t
58 globus_net_manager_context_init(
59  globus_net_manager_context_t *context,
60  const globus_net_manager_attr_t *attrs);
61 
62 void
63 globus_net_manager_context_destroy(
64  globus_net_manager_context_t context);
65 
66 globus_result_t
67 globus_net_manager_context_pre_listen(
68  globus_net_manager_context_t context,
69  const char *task_id,
70  const char *transport,
71  const globus_net_manager_attr_t *attr_array,
72  globus_net_manager_attr_t **attr_array_out);
73 
74 globus_result_t
75 globus_net_manager_context_post_listen(
76  globus_net_manager_context_t context,
77  const char *task_id,
78  const char *transport,
79  const char *local_contact,
80  const globus_net_manager_attr_t *attr_array,
81  char **local_contact_out,
82  globus_net_manager_attr_t **attr_array_out);
83 
84 globus_result_t
85 globus_net_manager_context_end_listen(
86  globus_net_manager_context_t context,
87  const char *task_id,
88  const char *transport,
89  const char *local_contact,
90  const globus_net_manager_attr_t *attr_array);
91 
92 globus_result_t
93 globus_net_manager_context_pre_accept(
94  globus_net_manager_context_t context,
95  const char *task_id,
96  const char *transport,
97  const char *local_contact,
98  const globus_net_manager_attr_t *attr_array,
99  globus_net_manager_attr_t **attr_array_out);
100 
101 globus_result_t
102 globus_net_manager_context_post_accept(
103  globus_net_manager_context_t context,
104  const char *task_id,
105  const char *transport,
106  const char *local_contact,
107  const char *remote_contact,
108  const globus_net_manager_attr_t *attr_array,
109  globus_net_manager_attr_t **attr_array_out);
110 
111 globus_result_t
112 globus_net_manager_context_pre_connect(
113  globus_net_manager_context_t context,
114  const char *task_id,
115  const char *transport,
116  const char *remote_contact,
117  const globus_net_manager_attr_t *attr_array,
118  char **remote_contact_out,
119  globus_net_manager_attr_t **attr_array_out);
120 
121 globus_result_t
122 globus_net_manager_context_post_connect(
123  globus_net_manager_context_t context,
124  const char *task_id,
125  const char *transport,
126  const char *local_contact,
127  const char *remote_contact,
128  const globus_net_manager_attr_t *attr_array,
129  globus_net_manager_attr_t **attr_array_out);
130 
131 globus_result_t
132 globus_net_manager_context_pre_close(
133  globus_net_manager_context_t context,
134  const char *task_id,
135  const char *transport,
136  const char *local_contact,
137  const char *remote_contact,
138  const globus_net_manager_attr_t *attr_array);
139 
140 globus_result_t
141 globus_net_manager_context_post_close(
142  globus_net_manager_context_t context,
143  const char *task_id,
144  const char *transport,
145  const char *local_contact,
146  const char *remote_contact,
147  const globus_net_manager_attr_t *attr_array);
148 
149 
150 typedef struct globus_i_net_manager_context_s
151 {
152  globus_list_t * managers;
153 } globus_i_net_manager_context_t;
154 
155 typedef struct globus_i_net_manager_context_entry_s
156 {
157  char * name;
158  char * dll_name;
159  globus_extension_handle_t ext_handle;
160  globus_net_manager_t * manager;
162 } globus_i_net_manager_context_entry_t;
163 
164 #ifdef __cplusplus
165 }
166 #endif
167 
168 #endif /* #define GLOBUS_NET_MANAGER_CONTEXT_H */
Net Manager Definition.
Definition: globus_net_manager.h:562
Net Manager Attributes.
Definition: globus_net_manager_attr.h:44
Globus Network Manager Attributes.
Globus Net Manager Interface.