00001 /* library/globus_common.h. Generated by configure. */ 00002 /* 00003 * Copyright 1999-2006 University of Chicago 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); 00006 * you may not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 */ 00017 00023 #if !defined(GLOBUS_INCLUDE_GLOBUS_COMMON_H) 00024 #define GLOBUS_INCLUDE_GLOBUS_COMMON_H 1 00025 00026 #ifndef EXTERN_C_BEGIN 00027 # ifdef __cplusplus 00028 # define EXTERN_C_BEGIN extern "C" { 00029 # define EXTERN_C_END } 00030 # else 00031 # define EXTERN_C_BEGIN 00032 # define EXTERN_C_END 00033 # endif 00034 #endif 00035 00036 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET 00037 00041 #endif 00042 00067 #include "globus_common_include.h" 00068 #include "globus_module.h" 00069 #include "globus_url.h" 00070 #include "globus_list.h" 00071 #include "globus_hashtable.h" 00072 #include "globus_fifo.h" 00073 #include "globus_symboltable.h" 00074 #include "globus_object.h" 00075 #include "globus_object_hierarchy.h" 00076 #include "globus_error.h" 00077 #include "globus_error_hierarchy.h" 00078 #include "globus_thread.h" 00079 #include "globus_time.h" 00080 #include "globus_thread_pool.h" 00081 #include "globus_handle_table.h" 00082 #include "globus_callback.h" 00083 #include "globus_logging.h" 00084 #include "globus_memory.h" 00085 #include "globus_print.h" 00086 #include "globus_tilde_expand.h" 00087 #include "globus_libc.h" 00088 #include "globus_priority_q.h" 00089 #include "globus_range_list.h" 00090 #include "globus_debug.h" 00091 #include "globus_args.h" 00092 #include "globus_strptime.h" 00093 #include "globus_thread_common.h" 00094 #include "globus_thread_rw_mutex.h" 00095 #include "globus_thread_rmutex.h" 00096 #include "globus_error_errno.h" 00097 #include "globus_error_generic.h" 00098 #include "globus_extension.h" 00099 #include "globus_uuid.h" 00100 #include "globus_options.h" 00101 #include "globus_states.h" 00102 00103 #ifdef __cplusplus 00104 extern "C" { 00105 #endif 00106 00107 /* most network-related functions (getpeername, getsockname,...) have 00108 an int* as argument, except AIX which uses size_t*. This will 00109 masquerade the difference. */ 00110 #if defined(__HOS_AIX__) 00111 #define globus_netlen_t size_t 00112 #else 00113 #define globus_netlen_t int 00114 #endif 00115 00116 /* 00117 * globus_barrier_t 00118 * 00119 * A generic barrier structure */ 00120 typedef struct globus_barrier_s 00121 { 00122 globus_mutex_t mutex; 00123 globus_cond_t cond; 00124 int count; 00125 } globus_barrier_t; 00126 00127 00128 /****************************************************************************** 00129 Define constants 00130 ******************************************************************************/ 00131 00132 /****************************************************************************** 00133 Module activation structure 00134 ******************************************************************************/ 00135 extern globus_module_descriptor_t globus_i_common_module; 00136 00141 #define GLOBUS_COMMON_MODULE (&globus_i_common_module) 00142 00143 00144 /****************************************************************************** 00145 i18n 00146 ******************************************************************************/ 00147 00148 extern globus_extension_registry_t i18n_registry; 00149 #define I18N_REGISTRY &i18n_registry 00150 00151 char * 00152 globus_common_i18n_get_string_by_key( 00153 const char * locale, 00154 const char * resource_name, 00155 const char * key); 00156 00157 char * 00158 globus_common_i18n_get_string( 00159 globus_module_descriptor_t * module, 00160 const char * key); 00161 00162 /****************************************************************************** 00163 Install path discovery functions 00164 ******************************************************************************/ 00165 00166 globus_result_t 00167 globus_location ( char ** bufp ); 00168 00169 globus_result_t 00170 globus_eval_path( const char * pathstring, char ** bufp); 00171 00172 /* returns value of GLOBUS_LOCATION in the deploy dir config file */ 00173 globus_result_t 00174 globus_common_get_attribute_from_config_file( char * deploy_path, 00175 char * file_location, 00176 char * attribute, 00177 char ** value ); 00178 00179 #ifdef __cplusplus 00180 } 00181 #endif 00182 00183 #endif /* GLOBUS_INCLUDE_GLOBUS_COMMON_H */