globus_error_generic.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 1999-2006 University of Chicago
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00022 #ifndef GLOBUS_ERROR_GENERIC_H
00023 #define GLOBUS_ERROR_GENERIC_H
00024 
00025 #include "globus_object.h"
00026 #include "globus_module.h"
00027 
00028 #include <stdarg.h>
00029 
00076 #ifdef __cplusplus
00077 extern "C" {
00078 #endif
00079 
00095 #define GLOBUS_ERROR_TYPE_GLOBUS (&GLOBUS_ERROR_TYPE_GLOBUS_DEFINITION)
00096 extern const globus_object_type_t GLOBUS_ERROR_TYPE_GLOBUS_DEFINITION;
00097 
00098 #ifndef DOXYGEN
00099 
00100 globus_object_t *
00101 globus_error_construct_error(
00102     globus_module_descriptor_t *        base_source,
00103     globus_object_t *                   base_cause,
00104     int                                 type,
00105     const char *                        source_file,
00106     const char *                        source_func,
00107     int                                 source_line,
00108     const char *                        short_desc_format,
00109     ...);
00110 
00111 globus_object_t *
00112 globus_error_v_construct_error(
00113     globus_module_descriptor_t *        base_source,
00114     globus_object_t *                   base_cause,
00115     int                                 type,
00116     const char *                        source_file,
00117     const char *                        source_func,
00118     int                                 source_line,
00119     const char *                        short_desc_format,
00120     va_list                             ap);
00121 
00122 globus_object_t *
00123 globus_error_initialize_error(
00124     globus_object_t *                   error,
00125     globus_module_descriptor_t *        base_source,
00126     globus_object_t *                   base_cause,
00127     int                                 type,
00128     const char *                        source_file,
00129     const char *                        source_func,
00130     int                                 source_line,
00131     const char *                        short_desc_format,
00132     va_list                             ap);
00133 
00134 #endif
00135 
00146 globus_module_descriptor_t *
00147 globus_error_get_source(
00148     globus_object_t *                   error);
00149 
00150 void
00151 globus_error_set_source(
00152     globus_object_t *                   error,
00153     globus_module_descriptor_t *        source_module);
00154 
00155 globus_object_t *
00156 globus_error_get_cause (
00157     globus_object_t *                   error);
00158 
00159 void
00160 globus_error_set_cause (
00161     globus_object_t *                   error,
00162     globus_object_t *                   causal_error);
00163 
00164 int
00165 globus_error_get_type(
00166     globus_object_t *                   error);
00167 
00168 void
00169 globus_error_set_type(
00170     globus_object_t *                   error,
00171     const int                           type);
00172 
00173 char *
00174 globus_error_get_short_desc(
00175     globus_object_t *                   error);
00176 
00177 void
00178 globus_error_set_short_desc(
00179     globus_object_t *                   error,
00180     const char *                        short_desc_format,
00181     ...);
00182 
00183 char *
00184 globus_error_get_long_desc(
00185     globus_object_t *                   error);
00186 
00187 void
00188 globus_error_set_long_desc(
00189     globus_object_t *                   error,
00190     const char *                        long_desc_format,
00191     ...);
00192 
00203 globus_bool_t
00204 globus_error_match(
00205     globus_object_t *                   error,
00206     globus_module_descriptor_t *        module,
00207     int                                 type);
00208 
00209 char *
00210 globus_error_print_chain(
00211     globus_object_t *                   error);
00212 
00213 char *
00214 globus_error_print_friendly(
00215     globus_object_t *                   error);
00216 
00244 typedef char * (*globus_error_print_friendly_t)(
00245     globus_object_t *                   error,
00246     const globus_object_type_t *        type);
00247 
00248 
00249 #define GLOBUS_ERROR_TYPE_MULTIPLE (&GLOBUS_ERROR_TYPE_MULTIPLE_DEFINITION)
00250 extern const globus_object_type_t GLOBUS_ERROR_TYPE_MULTIPLE_DEFINITION;
00251 
00252 globus_object_t *
00253 globus_error_construct_multiple(
00254     globus_module_descriptor_t *        base_source,
00255     int                                 type,
00256     const char *                        fmt,
00257     ...);
00258 
00259 void
00260 globus_error_mutliple_add_chain(
00261     globus_object_t *                   multiple_error,
00262     globus_object_t *                   chain,
00263     const char *                        fmt,
00264     ...);
00265 
00266 globus_object_t *
00267 globus_error_multiple_remove_chain(
00268     globus_object_t *                   multiple_error);
00269     
00270 #ifdef __cplusplus
00271 }
00272 #endif
00273 
00274 #endif /* GLOBUS_ERROR_GENERIC_H */

Generated on 17 Mar 2017 for globus_common by  doxygen 1.4.7