Main Page | Modules | Class List | Directories | File List | Class Members | File Members

axis2_error.h

00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
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 AXIS2_ERROR_H
00018 #define AXIS2_ERROR_H
00019 
00020 #include <axis2_defines.h>
00021 #include <axis2_allocator.h>
00022 
00023 #ifdef __cplusplus
00024 extern "C"
00025 {
00026 #endif
00027 
00028     struct axis2_error;
00029     struct axis2_error_ops;
00030         typedef enum axis2_status_codes axis2_status_codes_t;
00031         typedef enum axis2_error_codes axis2_error_codes_t;
00032 
00044    AXIS2_DECLARE_DATA typedef struct axis2_error_ops
00045     {
00046 
00052         axis2_status_t (AXIS2_CALL *free)(struct axis2_error *error);
00053         
00058          axis2_char_t * (AXIS2_CALL *get_message) (struct axis2_error *error
00059                                 , axis2_error_codes_t error_number);
00060                 
00061                  axis2_status_t  (AXIS2_CALL *set_error_number) (struct axis2_error *error
00062                                 ,  axis2_error_codes_t error_number);
00063                 
00064          axis2_status_t  (AXIS2_CALL *set_status_code) (struct axis2_error *error
00065                                 , axis2_status_codes_t status_code);
00066                 
00067          axis2_status_t  (AXIS2_CALL *get_status_code) (struct axis2_error *error);
00068                          
00069     } axis2_error_ops_t;
00070 
00076     typedef struct axis2_error
00077     {
00079         struct axis2_error_ops *ops;
00081         int error_number;
00082 
00083         int status_code;
00084     } axis2_error_t;
00085 
00086 
00087 #define AXIS2_ERROR_FREE(error) ((error->ops)->free(error))
00088 
00089 #define AXIS2_ERROR_GET_MESSAGE(error, status_code) ((error)->ops->get_message \
00090         (error, status_code))
00091 
00092 #define AXIS2_ERROR_SET_ERROR_NUMBER(error, error_number) \
00093         ((error)->ops->set_error_number(error, error_number))
00094         
00095 #define AXIS2_ERROR_SET_STATUS_CODE(error, status_code) \
00096         ((error)->ops->set_status_code(error, status_code))
00097         
00098 #define AXIS2_ERROR_GET_STATUS_CODE(error) ((error)->ops->get_status_code(error))
00099 
00105     enum axis2_status_codes
00106     {
00108         AXIS2_CRTICAL_FAILURE = -1,
00110         AXIS2_FAILURE,
00112         AXIS2_SUCCESS
00113     };
00114 
00120     enum axis2_error_codes
00121     {
00123         AXIS2_ERROR_NONE = 0,
00125         AXIS2_ERROR_NO_MEMORY,
00127         AXIS2_ERROR_INVALID_NULL_PARAM,
00129         AXIS2_ERROR_INVALID_ITERATOR_STATE,
00131         AXIS2_ERROR_INVALID_NODE_TYPE,
00133         AXIS2_ERROR_PULL_PARSER_ELEMENT_NULL,
00135         AXIS2_ERROR_PULL_PARSER_VALUE_NULL,
00137         AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL,
00139         AXIS2_ERROR_INVALID_BUILDER_STATE_LAST_NODE_NULL,
00141         AXIS2_ERROR_INVALID_BUILDER_STATE_CANNOT_DISCARD,
00143         AXIS2_ERROR_INVALID_DOCUMENT_STATE_ROOT_NULL,
00145         AXIS2_ERROR_INVALID_DOCUMENT_STATE_UNDEFINED_NAMESPACE,
00147         AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED,
00149                 AXIS2_ERROR_STRUCT_NOT_INITIALIZED,
00151                 AXIS2_ERROR_COULD_NOT_OPEN_FILE,
00153                 AXIS2_ERROR_ENVIRONMENT_IS_NULL,
00155         AXIS2_ERROR_INVALID_STATE_PARENT_NULL,
00157         AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE,
00159         AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER,
00161         AXIS2_ERROR_INVALID_STATE_PARAM,
00163         AXIS2_ERROR_INVALID_STATE_OPERATION,
00165         AXIS2_ERROR_INVALID_STATE_SVC,
00167         AXIS2_ERROR_INVALID_STATE_WSDL_SVC,
00169         AXIS2_ERROR_INVALID_STATE_SVC_GRP,
00171         AXIS2_ERROR_INVALID_STATE_WSDL_OPERATION,
00173         AXIS2_ERROR_INDEX_OUT_OF_BOUNDS,
00175         AXIS2_ERROR_BEFORE_AFTER_HANDLERS_SAME,
00177         AXIS2_ERROR_PHASE_FIRST_HANDLER_ALREADY_SET,
00179         AXIS2_ERROR_INVALID_PHASE_FIRST_HANDLER,
00181         AXIS2_ERROR_PHASE_LAST_HANDLER_ALREADY_SET,
00183         AXIS2_ERROR_INVALID_PHASE_LAST_HANDLER,
00185         AXIS2_ERROR_PHASE_ADD_HANDLER_INVALID,
00187         AXIS2_ERROR_INVALID_HANDLER_RULES,
00189         AXIS2_ERROR_INVALID_HANDLER_STATE,
00191         AXIS2_ERROR_NO_SUCH_ELEMENT,
00193         AXIS2_ERROR_COULD_NOT_MAP_MEP_URI_TO_MEP_CONSTANT,
00195         AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_OPERATION,
00197         AXIS2_ERROR_INVALID_STATE_MSG_CTX,
00199         AXIS2_ERROR_SERVICE_NOT_YET_FOUND,
00201         AXIS2_ERROR_CREATING_XML_STREAM_WRITER,
00203         AXIS2_ERROR_CREATING_XML_STREAM_READER,
00204         INVALID_PHASE
00205         
00206     };
00207 
00210 #ifdef __cplusplus
00211 }
00212 #endif
00213 
00214 
00215 #endif                          /* AXIS2_ERROR_H */

Generated on Thu Nov 24 13:58:29 2005 for Axis2/C by  doxygen 1.4.2