diff options
author | gmcdonald | 2010-02-13 01:32:03 +0000 |
---|---|---|
committer | gmcdonald | 2010-02-13 01:32:03 +0000 |
commit | 0425aadc78680e53000fd0108b540d6eca048516 (patch) | |
tree | 8ec7ab8e015d454c5ec586dfc91e05a2dce1cfc0 /util/include/axutil_error.h | |
download | axis2c-0425aadc78680e53000fd0108b540d6eca048516.tar.gz axis2c-0425aadc78680e53000fd0108b540d6eca048516.tar.bz2 |
Moving axis svn, part of TLP move INFRA-2441
git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@909681 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'util/include/axutil_error.h')
-rw-r--r-- | util/include/axutil_error.h | 876 |
1 files changed, 876 insertions, 0 deletions
diff --git a/util/include/axutil_error.h b/util/include/axutil_error.h new file mode 100644 index 0000000..3b27a81 --- /dev/null +++ b/util/include/axutil_error.h @@ -0,0 +1,876 @@ +/* + * 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 <axutil_utils_defines.h> +#include <axutil_allocator.h> + +#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 */ |