22 #ifndef GLOBUS_EXTENSION_H
23 #define GLOBUS_EXTENSION_H
34 #define GLOBUS_EXTENSION_MODULE (&globus_i_extension_module)
38 GLOBUS_EXTENSION_ERROR_OPEN_FAILED,
39 GLOBUS_EXTENSION_ERROR_LOOKUP_FAILED
56 #define GlobusExtensionDefineModule(name) \
57 globus_module_descriptor_t name##_module
58 #define GlobusExtensionDeclareModule(name) \
59 extern globus_module_descriptor_t name##_module
60 #define GlobusExtensionMyModule(name) &name##_module
96 const char * extension_name);
99 globus_extension_deactivate(
100 const char * extension_name);
102 typedef struct globus_l_extension_handle_s * globus_extension_handle_t;
106 globus_hashtable_t table;
109 } globus_extension_registry_t;
126 globus_extension_registry_add(
127 globus_extension_registry_t * registry,
133 globus_extension_registry_remove(
134 globus_extension_registry_t * registry,
138 globus_extension_registry_set_hashing(
139 globus_extension_registry_t * registry,
161 globus_extension_handle_t * handle,
162 globus_extension_registry_t * registry,
166 globus_extension_reference(
167 globus_extension_handle_t handle);
170 globus_extension_release(
171 globus_extension_handle_t handle);
176 globus_extension_get_module_version(
177 globus_extension_handle_t handle,
178 globus_version_t * version);
181 globus_extension_error_match(
182 globus_extension_handle_t handle,
183 globus_object_t * error,
188 (*globus_extension_error_match_cb_t)(
189 globus_object_t * error,
194 globus_extension_error_match_with_cb(
195 globus_extension_handle_t handle,
196 globus_object_t * error,
197 globus_extension_error_match_cb_t callback,
206 const char * extension_name,
210 globus_extension_unregister_builtin(
211 const char * extension_name);
215 char * extension_name;
217 } globus_extension_builtin_t;
221 globus_extension_register_builtins(
222 globus_extension_builtin_t * builtins);
225 globus_extension_unregister_builtins(
226 globus_extension_builtin_t * builtins);