/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef AXUTIL_ERROR_H #define AXUTIL_ERROR_H #include #include #ifdef __cplusplus extern "C" { #endif #define AXUTIL_ERROR_MESSAGE_BLOCK_SIZE 512 #define AXUTIL_ERROR_LAST AXUTIL_ERROR_MESSAGE_BLOCK_SIZE #define NEETHI_ERROR_CODES_START AXIS2_ERROR_LAST #define RAMPART_ERROR_CODES_START (NEETHI_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE) #define SANDESHA2_ERROR_CODES_START (RAMPART_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE) #define SAVAN_ERROR_CODES_START (SANDESHA2_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE) #define USER_ERROR_CODES_START (SAVAN_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE) /* AXUTIL_ERROR_MAX define the maximum size of the error array */ #define AXUTIL_ERROR_MAX (USER_ERROR_CODES_START + AXUTIL_ERROR_MESSAGE_BLOCK_SIZE) /** * \brief Axis2 status codes * * Possible status values for Axis2 */ enum axis2_status_codes { /** Critical Failure state */ AXIS2_CRITICAL_FAILURE = -1, /** Failure state */ AXIS2_FAILURE, /** Success state */ AXIS2_SUCCESS }; /** * \brief Axis2 error codes * * Set of error codes for Axis2 */ enum axutil_error_codes { /** * No error. * This must be the first error all the time and the assigned value of 0 * must not be changed as it is assumed in the error message array that * the error list starts with a value of 0. * Further, none of the error codes in this enum should not be initialized * to an arbitrary value as it is assumed in the implementation when mapping * error codes to error messages that the error codes are contiguous and * the last error value is always AXIS2_ERROR_LAST. */ AXIS2_ERROR_NONE = 0, /* * Group - Common Errors */ /** Out of memory */ AXIS2_ERROR_NO_MEMORY, /** NULL parameter was passed when a non NULL parameter was expected */ AXIS2_ERROR_INVALID_NULL_PARAM, /* * Group - core:addr */ /* * Group - core:clientapi */ /** Blocking invocation expects response */ AXIS2_ERROR_BLOCKING_INVOCATION_EXPECTS_RESPONSE, /** cannot infer transport from URL */ AXIS2_ERROR_CANNOT_INFER_TRANSPORT, /** Client side support only one configuration context */ AXIS2_ERROR_CLIENT_SIDE_SUPPORT_ONLY_ONE_CONF_CTX, /* MEP cannot be NULL in MEP client */ AXIS2_ERROR_MEP_CANNOT_BE_NULL_IN_MEP_CLIENT, /* MEP Mismatch */ AXIS2_ERROR_MEP_MISMATCH_IN_MEP_CLIENT, /** Two way channel needs addressing module to be engaged */ AXIS2_ERROR_TWO_WAY_CHANNEL_NEEDS_ADDRESSING, /** Unknown Transport */ AXIS2_ERROR_UNKNOWN_TRANSPORT, /* Unsupported SOAP style */ AXIS2_ERROR_UNSUPPORTED_TYPE, /* Options object is not set */ AXIS2_ERROR_OPTIONS_OBJECT_IS_NOT_SET, /* Session Timeout */ AXIS2_ERROR_SESSION_TIMEOUT, /* * Group - core:clientapi:diclient */ /* * Group - core:context */ /** Invalid SOAP envelope state */ AXIS2_ERROR_INVALID_SOAP_ENVELOPE_STATE, /** Invalid message context state */ AXIS2_ERROR_INVALID_STATE_MSG_CTX, /** Service accessed has invalid state */ AXIS2_ERROR_INVALID_STATE_SVC, /** Service group accessed has invalid state */ AXIS2_ERROR_INVALID_STATE_SVC_GRP, /** Service not yet found */ AXIS2_ERROR_SERVICE_NOT_YET_FOUND, /* * Group - core:deployment */ /* Invalid phase found in phase validation */ AXI2_ERROR_INVALID_PHASE, /* axis2.xml cannot be found */ AXIS2_ERROR_CONFIG_NOT_FOUND, /* Data element of the OM Node is null */ AXIS2_ERROR_DATA_ELEMENT_IS_NULL, /* In transport sender, Inflow is not allowed */ AXIS2_ERROR_IN_FLOW_NOT_ALLOWED_IN_TRS_OUT, /** Invalid handler state */ AXIS2_ERROR_INVALID_HANDLER_STATE, /* Invalid Module Ref encountered */ AXIS2_ERROR_INVALID_MODUELE_REF, /* Invalid Module Reference by Operation */ AXIS2_ERROR_INVALID_MODUELE_REF_BY_OP, /* Invalid Module Configuration */ AXIS2_ERROR_INVALID_MODULE_CONF, /* Description Builder is found to be in invalid state */ AXIS2_ERROR_INVALID_STATE_DESC_BUILDER, /* Module Not Found */ AXIS2_ERROR_MODULE_NOT_FOUND, /* Module Validation Failed */ AXIS2_ERROR_MODULE_VALIDATION_FAILED, /** Module xml file is not found in the given path */ AXIS2_ERROR_MODULE_XML_NOT_FOUND_FOR_THE_MODULE, /* No dispatcher found */ AXIS2_ERROR_NO_DISPATCHER_FOUND, /* Operation name is missing */ AXIS2_ERROR_OP_NAME_MISSING, /* In transport Receiver, Outflow is not allowed */ AXIS2_ERROR_OUT_FLOW_NOT_ALLOWED_IN_TRS_IN, /* Repository name cannot be NULL */ AXIS2_ERROR_REPO_CAN_NOT_BE_NULL, /* Repository in path does not exist */ AXIS2_ERROR_REPOSITORY_NOT_EXIST, /* Repository Listener initialization failed */ AXIS2_ERROR_REPOS_LISTENER_INIT_FAILED, /** Service xml file is not found in the given path */ AXIS2_ERROR_SERVICE_XML_NOT_FOUND, /* Service Name Error */ AXIS2_ERROR_SVC_NAME_ERROR, /* Transport Sender Error */ AXIS2_ERROR_TRANSPORT_SENDER_ERROR, /* Path to Config can not be NULL */ AXIS2_PATH_TO_CONFIG_CAN_NOT_BE_NULL, /* Invalid Service */ AXIS2_ERROR_INVALID_SVC, /* * Group - core:description */ /* Cannot correlate message */ AXIS2_ERROR_CANNOT_CORRELATE_MSG, /** Could not Map the MEP URI to a axis MEP constant value */ AXIS2_ERROR_COULD_NOT_MAP_MEP_URI_TO_MEP_CONSTANT, /* Invalid message addition , operation context completed */ AXIS2_ERROR_INVALID_MESSAGE_ADDITION, /** Module description accessed has invalid state */ AXIS2_ERROR_INVALID_STATE_MODULE_DESC, /** Parameter container not set */ AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER, /** module has already engaged to the op op terminated !!! */ AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_OP, /** module has already been engaged on the service.Operation terminated !!! */ AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_SVC, /** module has already been engaged on the service. Group Operation terminated !!! */ AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_SVC_GRP, /** Parameter locked, Cannot override */ AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE, /* schema list is empty or NULL in svc */ AXIS2_ERROR_EMPTY_SCHEMA_LIST, /* * Group - core:engine */ /** Both before and after handlers cannot be the same */ AXIS2_ERROR_BEFORE_AFTER_HANDLERS_SAME, /** Invalid handler rules */ AXIS2_ERROR_INVALID_HANDLER_RULES, /* Invalid Module */ AXIS2_ERROR_INVALID_MODULE, /** Invalid first handler for phase */ AXIS2_ERROR_INVALID_PHASE_FIRST_HANDLER, /** Invalid last handler for phase */ AXIS2_ERROR_INVALID_PHASE_LAST_HANDLER, /** Invalid engine config state */ AXIS2_ERROR_INVALID_STATE_CONF, /** Message context processing a fault already */ AXIS2_ERROR_INVALID_STATE_PROCESSING_FAULT_ALREADY, /** fault to field not specified in message context */ AXIS2_ERROR_NOWHERE_TO_SEND_FAULT, /** Only one handler allowed for phase, adding handler is not allowed */ AXIS2_ERROR_PHASE_ADD_HANDLER_INVALID, /** First handler of phase already set */ AXIS2_ERROR_PHASE_FIRST_HANDLER_ALREADY_SET, /** Last handler of phase already set */ AXIS2_ERROR_PHASE_LAST_HANDLER_ALREADY_SET, /**Two service can not have same name, a service with same name already exist in the system */ AXIS2_ERROR_TWO_SVCS_CANNOT_HAVE_SAME_NAME, /* * Group - core:phase resolver */ /* Invalid Module Ref */ AXIS2_ERROR_INVALID_MODULE_REF, /* Invalid Phase */ AXIS2_ERROR_INVALID_PHASE, /* No Transport Receiver is configured */ AXIS2_ERROR_NO_TRANSPORT_IN_CONFIGURED, /* No Transport Sender is configured */ AXIS2_ERROR_NO_TRANSPORT_OUT_CONFIGURED, /* Phase is not specified */ AXIS2_ERROR_PHASE_IS_NOT_SPECIFED, /* Service module can not refer global phase */ AXIS2_ERROR_SERVICE_MODULE_CAN_NOT_REFER_GLOBAL_PHASE, /* * Group - core:wsdl */ /** Schema is NULL */ AXIS2_ERROR_WSDL_SCHEMA_IS_NULL, /* * Group - core:receivers */ /* Om Element has invalid state */ AXIS2_ERROR_OM_ELEMENT_INVALID_STATE, /* Om Elements do not match */ AXIS2_ERROR_OM_ELEMENT_MISMATCH, /* RPC style SOAP body don't have a child element */ AXIS2_ERROR_RPC_NEED_MATCHING_CHILD, /* Operation Description has unknown operation style */ AXIS2_ERROR_UNKNOWN_STYLE, /* String does not represent a valid NCName */ AXIS2_ERROR_STRING_DOES_NOT_REPRESENT_A_VALID_NC_NAME, /* * Group - core:transport */ /* * Group - core:transport:http */ /* Error occurred in transport */ AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR, /** A read attempt(HTTP) for the reply without sending the request */ AXIS2_ERROR_HTTP_REQUEST_NOT_SENT, /** Invalid string passed as a http header */ AXIS2_ERROR_INVALID_HEADER, /* Invalid header start line (request line or response line) */ AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE, /* Transport protocol is unsupported by axis2 */ AXIS2_ERROR_INVALID_TRANSPORT_PROTOCOL, /** No body present in the request or the response */ AXIS2_ERROR_NULL_BODY, /* A valid conf_ctx is reqd for the http worker */ AXIS2_ERROR_NULL_CONFIGURATION_CONTEXT, /* HTTP version cannot be null in the status/request line */ AXIS2_ERROR_NULL_HTTP_VERSION, /* Input stream is NULL in msg_ctx */ AXIS2_ERROR_NULL_IN_STREAM_IN_MSG_CTX, /* OM output is NULL */ AXIS2_ERROR_NULL_OM_OUTPUT, /* Null SOAP envelope in msg_ctx */ AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX, /* NULL stream in the http chucked stream */ AXIS2_ERROR_NULL_STREAM_IN_CHUNKED_STREAM, /* We got a NULL stream in the response body */ AXIS2_ERROR_NULL_STREAM_IN_RESPONSE_BODY, /** URL NULL in http client */ AXIS2_ERROR_NULL_URL, /** Invalid URL format */ AXIS2_ERROR_INVALID_URL_FORMAT, /** Duplicate URL REST Mapping */ AXIS2_ERROR_DUPLICATE_URL_REST_MAPPING, /* We need transport_info in msg_ctx */ AXIS2_ERROR_OUT_TRNSPORT_INFO_NULL, /*Content-Type header missing in HTTP response" */ AXIS2_ERROR_RESPONSE_CONTENT_TYPE_MISSING, /** Response timed out */ AXIS2_ERROR_RESPONSE_TIMED_OUT, /** Server shutdown*/ AXIS2_ERROR_RESPONSE_SERVER_SHUTDOWN, /** SOAP envelope or SOAP body NULL */ AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL, /* Error occurred in SSL engine */ AXIS2_ERROR_SSL_ENGINE, /* Either axis2c cannot find certificates or the env variable is not set */ AXIS2_ERROR_SSL_NO_CA_FILE, /* Error in writing the response in response writer */ AXIS2_ERROR_WRITING_RESPONSE, /* Required parameter is missing in URL encoded request */ AXIS2_ERROR_REQD_PARAM_MISSING, /* Unsupported schema type in REST */ AXIS2_ERROR_UNSUPPORTED_SCHEMA_TYPE, /* Service or operation not found */ AXIS2_ERROR_SVC_OR_OP_NOT_FOUND, /* * Group - mod_addr */ AXIS2_ERROR_NO_MSG_INFO_HEADERS, /* * Group - platforms */ /* * Group - utils */ /** Could not open the axis2 file */ AXIS2_ERROR_COULD_NOT_OPEN_FILE, /* Failed in creating DLL */ AXIS2_ERROR_DLL_CREATE_FAILED, /* DLL loading failed */ AXIS2_ERROR_DLL_LOADING_FAILED, /** Environment passed is null */ AXIS2_ERROR_ENVIRONMENT_IS_NULL, /* Axis2 File does not have a file name */ AXIS2_ERROR_FILE_NAME_NOT_SET, /* DLL Description Info Object has invalid state */ AXIS2_ERROR_INVALID_STATE_DLL_DESC, /* Failed in creating Handler */ AXIS2_ERROR_HANDLER_CREATION_FAILED, /** Array list index out of bounds */ AXIS2_ERROR_INDEX_OUT_OF_BOUNDS, /** Invalid IP or host name */ AXIS2_ERROR_INVALID_ADDRESS, /** Trying to do operation on invalid file descriptor */ AXIS2_ERROR_INVALID_FD, /** Trying to do operation on closed/not opened socket */ AXIS2_ERROR_INVALID_SOCKET, /** Parameter not set */ AXIS2_ERROR_INVALID_STATE_PARAM, /* Module create failed */ AXIS2_ERROR_MODULE_CREATION_FAILED, /* Failed in creating Message Receiver */ AXIS2_ERROR_MSG_RECV_CREATION_FAILED, /** No such element */ AXIS2_ERROR_NO_SUCH_ELEMENT, /** Socket bind failed. Another process may be already using this port*/ AXIS2_ERROR_SOCKET_BIND_FAILED, /** Error creating a socket. Most probably error returned by OS */ AXIS2_ERROR_SOCKET_ERROR, /* Listen failed for the server socket */ AXIS2_ERROR_SOCKET_LISTEN_FAILED, /* Failed in creating Service Skeleton */ AXIS2_ERROR_SVC_SKELETON_CREATION_FAILED, /* Failed in creating Transport Receiver */ AXIS2_ERROR_TRANSPORT_RECV_CREATION_FAILED, /* Failed in creating Transport Sender */ AXIS2_ERROR_TRANSPORT_SENDER_CREATION_FAILED, /* Generation of platform dependent uuid failed */ AXIS2_ERROR_UUID_GEN_FAILED, /* Possible deadlock */ AXIS2_ERROR_POSSIBLE_DEADLOCK, /* * Group - WSDL */ /* Interface or Port Type not found for the binding */ AXIS2_ERROR_INTERFACE_OR_PORT_TYPE_NOT_FOUND_FOR_THE_BINDING, /* Interfaces or Ports not found for the partially built WOM */ AXIS2_ERROR_INTERFACES_OR_PORTS_NOT_FOUND_FOR_PARTIALLY_BUILT_WOM, /** Wsdl op accessed has invalid state */ AXIS2_ERROR_INVALID_STATE_WSDL_OP, /** Wsdl Service accessed has invalid state */ AXIS2_ERROR_INVALID_STATE_WSDL_SVC, /* Cannot determine MEP */ AXIS2_ERROR_MEP_CANNOT_DETERMINE_MEP, /* Wsdl binding name cannot be NULL(Is required) */ AXIS2_ERROR_WSDL_BINDING_NAME_IS_REQUIRED, /* PortType/Interface name cannot be null(Required) */ AXIS2_ERROR_WSDL_INTERFACE_NAME_IS_REQUIRED, /* Wsdl parsing has resulted in an invalid state */ AXIS2_ERROR_WSDL_PARSER_INVALID_STATE, /* Wsdl svc name cannot be null(Required) */ AXIS2_ERROR_WSDL_SVC_NAME_IS_REQUIRED, /* * Group - xml */ /* * Group - xml:attachments */ /** Attachment is missing */ AXIS2_ERROR_ATTACHMENT_MISSING, /* * Group - xml:om */ /** Builder done with pulling. Cannot pull any more */ AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL, /** Discard failed because the builder state is invalid */ AXIS2_ERROR_INVALID_BUILDER_STATE_CANNOT_DISCARD, /** Builder's last node is NULL when it is not supposed to be NULL */ AXIS2_ERROR_INVALID_BUILDER_STATE_LAST_NODE_NULL, /** Document root is NULL, when it is not supposed to be NULL */ AXIS2_ERROR_INVALID_DOCUMENT_STATE_ROOT_NULL, /** Undefined namespace used */ AXIS2_ERROR_INVALID_DOCUMENT_STATE_UNDEFINED_NAMESPACE, /** error a namespace should have a valid uri */ AXIS2_ERROR_INVALID_EMPTY_NAMESPACE_URI, /** next method has not been called so cannot remove an element before calling next valid for any om iterator */ AXIS2_ERROR_ITERATOR_NEXT_METHOD_HAS_NOT_YET_BEEN_CALLED, /** remove method has already been called once so cannot remove till next method is called valid for any om children iterator*/ AXIS2_ERROR_ITERATOR_REMOVE_HAS_ALREADY_BEING_CALLED, /** axiom_xml_reader returned NULL element */ AXIS2_ERROR_XML_READER_ELEMENT_NULL, /** axiom_xml_reader returned NULL value */ AXIS2_ERROR_XML_READER_VALUE_NULL, /* * Group - xml:parser */ /** error occurred creating xml stream reader */ AXIS2_ERROR_CREATING_XML_STREAM_READER, /** error occurred creating xml stream writer */ AXIS2_ERROR_CREATING_XML_STREAM_WRITER, /** error in writing attribute */ AXIS2_ERROR_WRITING_ATTRIBUTE, /** error in writing attribute with namespace */ AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE, /** error in writing attribute with namespace prefix */ AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE_PREFIX, /** error in writing comment */ AXIS2_ERROR_WRITING_COMMENT, /** error in writing data source*/ AXIS2_ERROR_WRITING_DATA_SOURCE, /** error in writing default namespace */ AXIS2_ERROR_WRITING_DEFAULT_NAMESPACE, /** error in writing DDT */ AXIS2_ERROR_WRITING_DTD, /** error occurred in writing empty element */ AXIS2_ERROR_WRITING_EMPTY_ELEMENT, /** error occurred in writing empty element with namespace */ AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE, /** error in writing empty element with namespace prefix */ AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE_PREFIX, /** error occurred in writing end document in xml writer */ AXIS2_ERROR_WRITING_END_DOCUMENT, /** error occurred in writing end element in xml writer */ AXIS2_ERROR_WRITING_END_ELEMENT, /** error in writing processing instruction */ AXIS2_ERROR_WRITING_PROCESSING_INSTRUCTION, /** error occurred in writing start element in start document in xml writer */ AXIS2_ERROR_WRITING_START_DOCUMENT, /** error occurred in writing start element in xml writer */ AXIS2_ERROR_WRITING_START_ELEMENT, /** error occurred in writing start element with namespace in xml writer*/ AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE, /** error occurred in writing start element with namespace prefix */ AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE_PREFIX, /** error in writing cdata section */ AXIS2_ERROR_WRITING_CDATA, /** AXIS2_XML_PARSER_TYPE_BUFFER or AXIS2_XML_PARSER_TYPE_DOC is expected */ AXIS2_ERROR_XML_PARSER_INVALID_MEM_TYPE, /* * Group - xml:SOAP */ /** invalid type passed */ AXIS2_ERROR_INVALID_BASE_TYPE, /** invalid SOAP namespace uri found */ AXIS2_ERROR_INVALID_SOAP_NAMESPACE_URI, /** Invalid SOAP version */ AXIS2_ERROR_INVALID_SOAP_VERSION, /* invalid value found in must understand attribute */ AXIS2_ERROR_INVALID_VALUE_FOUND_IN_MUST_UNDERSTAND, /*multiple code elements encountered in SOAP fault element */ AXIS2_ERROR_MULTIPLE_CODE_ELEMENTS_ENCOUNTERED, /*multiple detail elements encountered in SOAP fault element */ AXIS2_ERROR_MULTIPLE_DETAIL_ELEMENTS_ENCOUNTERED, /*multiple node elements encountered in SOAP fault element */ AXIS2_ERROR_MULTIPLE_NODE_ELEMENTS_ENCOUNTERED, /*multiple reason elements encountered in SOAP fault element */ AXIS2_ERROR_MULTIPLE_REASON_ELEMENTS_ENCOUNTERED, /*multiple role elements encountered in SOAP fault element */ AXIS2_ERROR_MULTIPLE_ROLE_ELEMENTS_ENCOUNTERED, /*multiple sub code values encountered in SOAP fault element */ AXIS2_ERROR_MULTIPLE_SUB_CODE_VALUES_ENCOUNTERED, /* multiple value elements encountered */ AXIS2_ERROR_MULTIPLE_VALUE_ENCOUNTERED_IN_CODE_ELEMENT, /* must understand attribute should have values of true or false */ AXIS2_ERROR_MUST_UNDERSTAND_SHOULD_BE_1_0_TRUE_FALSE, /** om element is expected */ AXIS2_ERROR_OM_ELEMENT_EXPECTED, /* processing SOAP 1.1 fault value element should have only text as its children */ AXIS2_ERROR_ONLY_CHARACTERS_ARE_ALLOWED_HERE, /** only one SOAP fault allowed in SOAP body */ AXIS2_ERROR_ONLY_ONE_SOAP_FAULT_ALLOWED_IN_BODY, /*SOAP 1.1 fault actor element should not have child elements */ AXIS2_ERROR_SOAP11_FAULT_ACTOR_SHOULD_NOT_HAVE_CHILD_ELEMENTS, /** SOAP builder found a child element other than header or body in envelope element */ AXIS2_ERROR_SOAP_BUILDER_ENVELOPE_CAN_HAVE_ONLY_HEADER_AND_BODY, /** SOAP builder encountered body element first and header next */ AXIS2_ERROR_SOAP_BUILDER_HEADER_BODY_WRONG_ORDER, /** SOAP builder multiple body elements encountered */ AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_BODY_ELEMENTS_ENCOUNTERED, /** SOAP builder encountered multiple headers */ AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_HEADERS_ENCOUNTERED, /*SOAP fault code element should a mandatory fault value element */ AXIS2_ERROR_SOAP_FAULT_CODE_DOES_NOT_HAVE_A_VALUE, /*SOAP fault reason element should have a text */ AXIS2_ERROR_SOAP_FAULT_REASON_ELEMENT_SHOULD_HAVE_A_TEXT, /*SOAP fault role element should have a text value */ AXIS2_ERROR_SOAP_FAULT_ROLE_ELEMENT_SHOULD_HAVE_A_TEXT, /* SOAP fault value should be present before sub code element in SOAP fault code */ AXIS2_ERROR_SOAP_FAULT_VALUE_SHOULD_BE_PRESENT_BEFORE_SUB_CODE, /** SOAP message does not have an envelope element */ AXIS2_ERROR_SOAP_MESSAGE_DOES_NOT_CONTAIN_AN_ENVELOPE, /*SOAP message first element must contain a localname */ AXIS2_ERROR_SOAP_MESSAGE_FIRST_ELEMENT_MUST_CONTAIN_LOCAL_NAME, /* this localname is not supported inside a reason element */ AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_REASON_ELEMENT, /*this localname is not supported inside a sub code element */ AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_SUB_CODE_ELEMENT, /*this localname is not supported inside the code element */ AXIS2_ERROR_THIS_LOCALNAME_NOT_SUPPORTED_INSIDE_THE_CODE_ELEMENT, /*transport level identified SOAP version does not match with the SOAP version */ AXIS2_ERROR_TRANSPORT_LEVEL_INFORMATION_DOES_NOT_MATCH_WITH_SOAP, /*unsupported element in SOAP fault element */ AXIS2_ERROR_UNSUPPORTED_ELEMENT_IN_SOAP_FAULT_ELEMENT, /*wrong element order encountered */ AXIS2_ERROR_WRONG_ELEMENT_ORDER_ENCOUNTERED, /* * Group - services */ /** Invalid XML format in request */ AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, /** Input OM node NULL, Probably error in SOAP request */ AXIS2_ERROR_SVC_SKEL_INPUT_OM_NODE_NULL, /** Invalid parameters for service operation in SOAP request */ AXIS2_ERROR_SVC_SKEL_INVALID_OPERATION_PARAMETERS_IN_SOAP_REQUEST, /* * Group - repos */ /* not authenticated */ AXIS2_ERROR_REPOS_NOT_AUTHENTICATED, /* unsupported mode */ AXIS2_ERROR_REPOS_UNSUPPORTED_MODE, /* expired */ AXIS2_ERROR_REPOS_EXPIRED, /* not implemented */ AXIS2_ERROR_REPOS_NOT_IMPLEMENTED, /* not found */ AXIS2_ERROR_REPOS_NOT_FOUND, /* bad search text */ AXIS2_ERROR_REPOS_BAD_SEARCH_TEXT, /* *Group - Neethi */ /* No Namespace */ AXIS2_ERROR_NEETHI_ELEMENT_WITH_NO_NAMESPACE, /*Policy cannot be created from element */ AXIS2_ERROR_NEETHI_POLICY_CREATION_FAILED_FROM_ELEMENT, /*All Cannot be created from element */ AXIS2_ERROR_NEETHI_ALL_CREATION_FAILED_FROM_ELEMENT, /*Exactly one Cannot be created element */ AXIS2_ERROR_NEETHI_EXACTLYONE_CREATION_FAILED_FROM_ELEMENT, /*Reference Cannot be created from element */ AXIS2_ERROR_NEETHI_REFERENCE_CREATION_FAILED_FROM_ELEMENT, /*Assertion Cannot be created from element */ AXIS2_ERROR_NEETHI_ASSERTION_CREATION_FAILED_FROM_ELEMENT, /*All creation failed */ AXIS2_ERROR_NEETHI_ALL_CREATION_FAILED, /*Exactly one creation failed */ AXIS2_ERROR_NEETHI_EXACTLYONE_CREATION_FAILED, /*Policy Creation failed */ AXIS2_ERROR_NEETHI_POLICY_CREATION_FAILED, /*Normalization failed */ AXIS2_ERROR_NEETHI_NORMALIZATION_FAILED, /*Merging Failed. Wrong Input */ AXIS2_ERROR_NEETHI_WRONG_INPUT_FOR_MERGE, /*Merging Failed. Cross Product failed */ AXIS2_ERROR_NEETHI_CROSS_PRODUCT_FAILED, /*No Children Policy Components */ AXIS2_ERROR_NEETHI_NO_CHILDREN_POLICY_COMPONENTS, /*Uri Not specified */ AXIS2_ERROR_NEETHI_URI_NOT_SPECIFIED, /*Policy NULL for the given uri */ AXIS2_ERROR_NEETHI_NO_ENTRY_FOR_THE_GIVEN_URI, /*Exactly one not found in Normalized policy */ AXIS2_ERROR_NEETHI_EXACTLYONE_NOT_FOUND_IN_NORMALIZED_POLICY, /*Exactly one is Empty */ AXIS2_ERROR_NEETHI_EXACTLYONE_IS_EMPTY, /*Exactly one not found while getting cross product */ AXIS2_ERROR_NEETHI_ALL_NOT_FOUND_WHILE_GETTING_CROSS_PRODUCT, /*Unknown Assertion*/ AXIS2_ERROR_NEETHI_UNKNOWN_ASSERTION, /** * The following has to be the last error value all the time. * All other error codes should appear above this. * AXIS2_ERROR_LAST is used to track the number of error codes present * for the purpose of sizing the error messages array. */ AXIS2_ERROR_LAST }; struct axutil_error; typedef enum axis2_status_codes axis2_status_codes_t; typedef enum axutil_error_codes axutil_error_codes_t; /** * @defgroup axutil_error error * @ingroup axis2_util * @{ */ /** * Axutil error struct. * Error holds the last error number, the status code as well as the * last error message. */ typedef struct axutil_error { /** * Memory allocator associated with the error struct. * It is this allocator that would be used to allocate memory * for the error struct instance in create method. */ axutil_allocator_t *allocator; /** Last error number. */ int error_number; /** Last status code. */ int status_code; /** * Error message. This could be set to a custom message to be * returned, instead of standard errors set in the error messages * array by the axutil_error_init function call. */ axis2_char_t *message; } axutil_error_t; /** * Gets the error message corresponding to the last error occurred. * @param error pointer to error struct * @return string representing the error message for the last error occurred */ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axutil_error_get_message( const struct axutil_error *error); /** * This function is supposed to be overridden in an extended error structure. * For example in Sandesha error structure this function is overridden so that * errors of axis2 range call the get_message function of error struct but * errors of sandesha2 range get the messages from an array of that struct. * @return error message for the extended struct. * @deprecated this function is not in use, so should be removed. */ /*AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axutil_error_get_extended_message( const struct axutil_error *error);*/ /** * Sets the error number. * @param error pointer to error struct * @param error_number error number to be set * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axutil_error_set_error_number( struct axutil_error *error, axutil_error_codes_t error_number); /** * Sets the status code. * @param error pointer to error struct * @param status_code status code to be set * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axutil_error_set_status_code( struct axutil_error *error, axis2_status_codes_t status_code); /** * Gets the status code. * @param error pointer to error struct * @return last status code set on error struct */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axutil_error_get_status_code( struct axutil_error *error); /** * Sets error message to the given value. * @param error pointer to error struct * @param message error message to be set * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axutil_error_set_error_message( struct axutil_error *error, axis2_char_t *message); /** * Initializes the axutil_error_messages array. This array holds the * error messages that corresponds to the error codes. This function * must be call before using the error struct instance. * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE */ AXIS2_EXTERN axis2_status_t AXIS2_CALL axutil_error_init(void); /** * De-allocates an error struct instance. * @param error pointer to error struct instance to be freed. * @return void */ AXIS2_EXTERN void AXIS2_CALL axutil_error_free( struct axutil_error *error); /** * @deprecated The following macros are no longer useful as we can use the * function calls directly. Hence these macros should be removed */ #define AXIS2_ERROR_FREE(error) axutil_error_free(error) #define AXIS2_ERROR_GET_MESSAGE(error) \ axutil_error_get_message(error) #define AXIS2_ERROR_SET_MESSAGE(error, message) \ axutil_error_set_error_message(error, message) #define AXIS2_ERROR_SET_ERROR_NUMBER(error, error_number) \ axutil_error_set_error_number(error, error_number) #define AXIS2_ERROR_SET_STATUS_CODE(error, status_code) \ axutil_error_set_status_code(error, status_code) #define AXIS2_ERROR_GET_STATUS_CODE(error) axutil_error_get_status_code(error) /** @} */ #ifdef __cplusplus } #endif #endif /* AXIS2_ERROR_H */