globus_i_gss_assist.h

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 
00017 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
00018 
00019 #ifndef GLOBUS_I_GSS_ASSIST_H
00020 #define GLOBUS_I_GSS_ASSIST_H
00021 
00028 #include "globus_gss_assist.h"
00029 #include "globus_common.h"
00030 
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034 
00035 /* DEBUG MACROS */
00036 
00037 extern int                              globus_i_gsi_gss_assist_debug_level;
00038 extern FILE *                           globus_i_gsi_gss_assist_debug_fstream;
00039 
00040 extern globus_mutex_t                   globus_i_gsi_gss_assist_mutex;
00041 
00042 #ifdef BUILD_DEBUG
00043 
00044 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_) \
00045     (globus_i_gsi_gss_assist_debug_level >= (_LEVEL_))
00046 
00047 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) \
00048     { \
00049         if (GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_)) \
00050         { \
00051           globus_libc_fprintf _MESSAGE_; \
00052         } \
00053     }
00054 
00055 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) \
00056     { \
00057         if (GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_)) \
00058         { \
00059           char *                        _tmp_str_ = \
00060               globus_common_create_nstring _MESSAGE_; \
00061           globus_libc_fprintf(globus_i_gsi_gss_assist_debug_fstream, \
00062                               "%s", _tmp_str_); \
00063           globus_libc_free(_tmp_str_); \
00064         } \
00065     }
00066 
00067 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_PRINT(_LEVEL_, _MESSAGE_) \
00068     { \
00069         if (GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_)) \
00070         { \
00071            globus_libc_fprintf(globus_i_gsi_gss_assist_debug_fstream, \
00072                                _MESSAGE_); \
00073         } \
00074     }
00075 
00076 #else
00077 
00078 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG(_LEVEL_) 0
00079 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) {}
00080 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) {}
00081 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_PRINT(_LEVEL, _MESSAGE_) {}
00082 
00083 #endif
00084 
00085 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_ENTER \
00086             GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF( \
00087                 2, (globus_i_gsi_gss_assist_debug_fstream, \
00088                     "%s entering\n", _function_name_))
00089 
00090 #define GLOBUS_I_GSI_GSS_ASSIST_DEBUG_EXIT \
00091             GLOBUS_I_GSI_GSS_ASSIST_DEBUG_FPRINTF( \
00092                 2, (globus_i_gsi_gss_assist_debug_fstream, \
00093                     "%s exiting\n", _function_name_))
00094 
00095 /* ERROR MACROS */
00096 
00097 #define GLOBUS_GSI_GSS_ASSIST_ERROR_RESULT(_RESULT_, _ERRORTYPE_, _ERRSTR_) \
00098     { \
00099         char *                          _tmp_str_ = \
00100             globus_common_create_string _ERRSTR_; \
00101         _RESULT_ = globus_i_gsi_gss_assist_error_result(_ERRORTYPE_, \
00102                                                         __FILE__, \
00103                                                         _function_name_, \
00104                                                         __LINE__, \
00105                                                         _tmp_str_, \
00106                                                         NULL); \
00107         globus_libc_free(_tmp_str_); \
00108     }
00109 
00110 #define GLOBUS_GSI_GSS_ASSIST_ERROR_CHAIN_RESULT(_TOP_RESULT_, _ERRORTYPE_) \
00111     _TOP_RESULT_ = globus_i_gsi_gss_assist_error_chain_result(_TOP_RESULT_, \
00112                                                         _ERRORTYPE_, \
00113                                                         __FILE__, \
00114                                                         _function_name_, \
00115                                                         __LINE__, \
00116                                                         NULL, \
00117                                                         NULL)
00118 
00119 #define GLOBUS_GSI_GSS_ASSIST_LONG_ERROR_RESULT(_RESULT_, \
00120                                                 _ERRORTYPE_, \
00121                                                 _ERRSTR_, \
00122                                                 _LONG_DESC_) \
00123     { \
00124         char *                          _tmp_str_ = \
00125             globus_common_create_string _ERRSTR_; \
00126         _RESULT_ = globus_i_gsi_gss_assist_error_result(_ERRORTYPE_, \
00127                                                         __FILE__, \
00128                                                         _function_name_, \
00129                                                         __LINE__, \
00130                                                         _tmp_str_, \
00131                                                         _LONG_DESC_); \
00132         globus_libc_free(_tmp_str_); \
00133     }
00134 
00135 #define GLOBUS_GSI_GSS_ASSIST_LONG_ERROR_CHAIN_RESULT(_TOP_RESULT_, \
00136                                                       _ERRORTYPE_, \
00137                                                       _LONG_DESC_) \
00138     _TOP_RESULT_ = globus_i_gsi_gss_assist_error_chain_result(_TOP_RESULT_, \
00139                                                         _ERRORTYPE_, \
00140                                                         __FILE__, \
00141                                                         _function_name_, \
00142                                                         __LINE__, \
00143                                                         NULL, \
00144                                                         _LONG_DESC_)
00145 
00146 
00147 
00148 extern char *                        globus_l_gsi_gss_assist_error_strings[];
00149 
00150 globus_result_t
00151 globus_i_gsi_gss_assist_error_result(
00152     int                                 error_type,
00153     const char *                        filename,
00154     const char *                        function_name,
00155     int                                 line_number,
00156     const char *                        short_desc,
00157     const char *                        long_desc);
00158 
00159 globus_result_t
00160 globus_i_gsi_gss_assist_error_chain_result(
00161     globus_result_t                     chain_result,
00162     int                                 error_type,
00163     const char *                        filename,
00164     const char *                        function_name,
00165     int                                 line_number,
00166     const char *                        short_desc,
00167     const char *                        long_desc);
00168 
00169 #ifdef __cplusplus
00170 }
00171 #endif
00172 
00173 #endif /* GLOBUS_I_GSS_ASSIST_H */
00174 
00175 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */

Generated on 15 Sep 2014 for globus_gss_assist by  doxygen 1.4.7