summaryrefslogtreecommitdiffstats
path: root/util/include/axutil_error.h
diff options
context:
space:
mode:
Diffstat (limited to 'util/include/axutil_error.h')
-rw-r--r--util/include/axutil_error.h876
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 */