globus_xio 6.6
Loading...
Searching...
No Matches
globus_xio_types.h
1/*
2 * Copyright 1999-2006 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#if !defined(GLOBUS_XIO_TYPES_H)
18#define GLOBUS_XIO_TYPES_H 1
19
20#include "globus_common.h"
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#define GLOBUS_XIO_QUERY ((globus_xio_driver_t) 0x01)
27
28/*************************************************************************
29 * define types
30 ************************************************************************/
31typedef struct globus_i_xio_handle_s * globus_xio_handle_t;
32typedef struct globus_i_xio_context_entry_s * globus_xio_driver_handle_t;
33typedef struct globus_i_xio_op_s * globus_xio_operation_t;
34typedef struct globus_i_xio_driver_s * globus_xio_driver_t;
35typedef struct globus_i_xio_attr_s * globus_xio_attr_t;
36typedef struct globus_i_xio_stack_s * globus_xio_stack_t;
37typedef struct globus_i_xio_server_s * globus_xio_server_t;
38typedef struct globus_i_xio_server_s * globus_xio_driver_server_t;
39typedef struct globus_i_xio_op_s * globus_xio_data_descriptor_t;
40typedef struct iovec globus_xio_iovec_t;
41
50{
51 GLOBUS_XIO_OPERATION_TYPE_NONE,
52 GLOBUS_XIO_OPERATION_TYPE_FINISHED,
53 GLOBUS_XIO_OPERATION_TYPE_OPEN,
54 GLOBUS_XIO_OPERATION_TYPE_CLOSE,
55 GLOBUS_XIO_OPERATION_TYPE_READ,
56 GLOBUS_XIO_OPERATION_TYPE_WRITE,
57 GLOBUS_XIO_OPERATION_TYPE_ACCEPT,
58 GLOBUS_XIO_OPERATION_TYPE_DRIVER,
59 GLOBUS_XIO_OPERATION_TYPE_DD,
60 GLOBUS_XIO_OPERATION_TYPE_SERVER_INIT
62
63typedef enum globus_i_xio_signal_type_e
64{
65 GLOBUS_XIO_SIGNAL_TYPE_NONE
66} globus_xio_signal_type_t;
67
68typedef enum
69{
70 GLOBUS_XIO_ERROR_CANCELED,
71 GLOBUS_XIO_ERROR_EOF,
72 GLOBUS_XIO_ERROR_COMMAND,
73 GLOBUS_XIO_ERROR_CONTACT_STRING,
74 GLOBUS_XIO_ERROR_PARAMETER,
75 GLOBUS_XIO_ERROR_MEMORY,
76 GLOBUS_XIO_ERROR_SYSTEM_ERROR,
77 GLOBUS_XIO_ERROR_SYSTEM_RESOURCE,
78 GLOBUS_XIO_ERROR_STACK,
79 GLOBUS_XIO_ERROR_DRIVER,
80 GLOBUS_XIO_ERROR_PASS,
81 GLOBUS_XIO_ERROR_ALREADY_REGISTERED,
82 GLOBUS_XIO_ERROR_STATE,
83 GLOBUS_XIO_ERROR_WRAPPED,
84 GLOBUS_XIO_ERROR_NOT_REGISTERED,
85 GLOBUS_XIO_ERROR_NOT_ACTIVATED,
86 GLOBUS_XIO_ERROR_UNLOADED,
87 GLOBUS_XIO_ERROR_TIMEOUT,
88 GLOBUS_XIO_ERROR_PARSE
89} globus_xio_error_type_t;
90
91
92/* ALL is all but ACCEPT */
93typedef enum
94{
95 GLOBUS_XIO_ATTR_SET_TIMEOUT_ALL,
96 GLOBUS_XIO_ATTR_SET_TIMEOUT_OPEN,
97 GLOBUS_XIO_ATTR_SET_TIMEOUT_CLOSE,
98 GLOBUS_XIO_ATTR_SET_TIMEOUT_READ,
99 GLOBUS_XIO_ATTR_SET_TIMEOUT_WRITE,
100 GLOBUS_XIO_ATTR_SET_TIMEOUT_ACCEPT,
101 GLOBUS_XIO_ATTR_SET_SPACE,
102 GLOBUS_XIO_ATTR_CLOSE_NO_CANCEL,
103 GLOBUS_XIO_ATTR_SET_CREDENTIAL,
104 GLOBUS_XIO_ATTR_GET_CREDENTIAL
105} globus_xio_attr_cmd_t;
106
117typedef enum
118{
119 /* Make sure this enum starts at a high number */
120
133 /* char ** contact_string_out */
135
146 /* char ** contact_string_out */
148
159 /* char ** contact_string_out */
161
172 /* char ** contact_string_out */
174
182 /* globus_off_t offset */
184
194 /* char * config_string */
196
206 /* char ** config_string */
208
218 /* const char ** driver_name */
220
222
223typedef enum
224{
225 GLOBUS_XIO_DD_SET_OFFSET,
226 GLOBUS_XIO_DD_GET_OFFSET
227} globus_xio_dd_cmd_t;
228
229typedef enum
230{
231 GLOBUS_XIO_CANCEL_OPEN = 0x01,
232 GLOBUS_XIO_CANCEL_CLOSE = 0x02,
233 GLOBUS_XIO_CANCEL_READ = 0x04,
234 GLOBUS_XIO_CANCEL_WRITE = 0x08
235} globus_xio_cancel_t;
236
237typedef enum
238{
239 GLOBUS_XIO_DEBUG_ERROR = 1,
240 GLOBUS_XIO_DEBUG_WARNING = 2,
241 GLOBUS_XIO_DEBUG_TRACE = 4,
242 GLOBUS_XIO_DEBUG_INTERNAL_TRACE = 8,
243 GLOBUS_XIO_DEBUG_INFO = 16,
244 GLOBUS_XIO_DEBUG_STATE = 32,
245 GLOBUS_XIO_DEBUG_INFO_VERBOSE = 64
246} globus_xio_debug_levels_t;
247
248typedef struct
249{
250 char * unparsed;
251 char * resource;
252 char * host;
253 char * port;
254 char * scheme;
255 char * user;
256 char * pass;
257 char * subject;
258} globus_xio_contact_t;
260
261typedef struct globus_xio_driver_list_ent_s
262{
263 globus_xio_driver_t driver;
264 char * driver_name;
265 char * opts;
266 void * user_arg;
267 globus_bool_t loaded;
268}globus_xio_driver_list_ent_t;
270#ifdef __cplusplus
271}
272#endif
273
274#endif
enum globus_i_xio_op_type_e globus_xio_operation_type_t
globus_i_xio_op_type_e
Definition globus_xio_types.h:50
globus_xio_handle_cmd_t
Definition globus_xio_types.h:117
@ GLOBUS_XIO_GET_REMOTE_CONTACT
Definition globus_xio_types.h:130
@ GLOBUS_XIO_SEEK
Definition globus_xio_types.h:138
@ GLOBUS_XIO_GET_DRIVER_NAME
Definition globus_xio_types.h:150
@ GLOBUS_XIO_GET_STRING_OPTIONS
Definition globus_xio_types.h:146
@ GLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT
Definition globus_xio_types.h:126
@ GLOBUS_XIO_GET_REMOTE_NUMERIC_CONTACT
Definition globus_xio_types.h:134
@ GLOBUS_XIO_GET_LOCAL_CONTACT
Definition globus_xio_types.h:122
@ GLOBUS_XIO_SET_STRING_OPTIONS
Definition globus_xio_types.h:142